@sync-in/server 1.11.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1040) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/LICENSE +1 -1
  3. package/README.md +3 -11
  4. package/environment/environment.dist.min.yaml +1 -1
  5. package/environment/environment.dist.yaml +173 -28
  6. package/package.json +17 -16
  7. package/server/app.bootstrap.js +1 -5
  8. package/server/app.bootstrap.js.map +1 -1
  9. package/server/app.constants.js +1 -5
  10. package/server/app.constants.js.map +1 -1
  11. package/server/app.e2e-spec.js +1 -5
  12. package/server/app.e2e-spec.js.map +1 -1
  13. package/server/app.functions.js +1 -5
  14. package/server/app.functions.js.map +1 -1
  15. package/server/app.module.js +1 -5
  16. package/server/app.module.js.map +1 -1
  17. package/server/app.service.js +1 -5
  18. package/server/app.service.js.map +1 -1
  19. package/server/app.service.spec.js +2 -6
  20. package/server/app.service.spec.js.map +1 -1
  21. package/server/applications/admin/admin.module.js +1 -5
  22. package/server/applications/admin/admin.module.js.map +1 -1
  23. package/server/applications/admin/constants/routes.js +1 -5
  24. package/server/applications/admin/constants/routes.js.map +1 -1
  25. package/server/applications/admin/interfaces/check-update.interfaces.js +1 -5
  26. package/server/applications/admin/interfaces/check-update.interfaces.js.map +1 -1
  27. package/server/applications/admin/services/admin-scheduler.service.js +1 -5
  28. package/server/applications/admin/services/admin-scheduler.service.js.map +1 -1
  29. package/server/applications/admin/services/admin.service.js +13 -8
  30. package/server/applications/admin/services/admin.service.js.map +1 -1
  31. package/server/applications/admin/services/admin.service.spec.js +1 -5
  32. package/server/applications/admin/services/admin.service.spec.js.map +1 -1
  33. package/server/applications/admin/utils/check-update.js +1 -5
  34. package/server/applications/admin/utils/check-update.js.map +1 -1
  35. package/server/applications/applications.config.js +1 -5
  36. package/server/applications/applications.config.js.map +1 -1
  37. package/server/applications/applications.constants.js +5 -5
  38. package/server/applications/applications.constants.js.map +1 -1
  39. package/server/applications/applications.module.js +1 -5
  40. package/server/applications/applications.module.js.map +1 -1
  41. package/server/applications/comments/comments.controller.js +1 -5
  42. package/server/applications/comments/comments.controller.js.map +1 -1
  43. package/server/applications/comments/comments.controller.spec.js +1 -5
  44. package/server/applications/comments/comments.controller.spec.js.map +1 -1
  45. package/server/applications/comments/comments.module.js +1 -5
  46. package/server/applications/comments/comments.module.js.map +1 -1
  47. package/server/applications/comments/constants/routes.js +1 -5
  48. package/server/applications/comments/constants/routes.js.map +1 -1
  49. package/server/applications/comments/dto/comment.dto.js +1 -5
  50. package/server/applications/comments/dto/comment.dto.js.map +1 -1
  51. package/server/applications/comments/interfaces/comment-recent.interface.js +1 -5
  52. package/server/applications/comments/interfaces/comment-recent.interface.js.map +1 -1
  53. package/server/applications/comments/schemas/comment.interface.js +1 -5
  54. package/server/applications/comments/schemas/comment.interface.js.map +1 -1
  55. package/server/applications/comments/schemas/comments.schema.js +1 -5
  56. package/server/applications/comments/schemas/comments.schema.js.map +1 -1
  57. package/server/applications/comments/services/comments-manager.service.js +9 -7
  58. package/server/applications/comments/services/comments-manager.service.js.map +1 -1
  59. package/server/applications/comments/services/comments-manager.service.spec.js +10 -8
  60. package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -1
  61. package/server/applications/comments/services/comments-queries.service.js +1 -5
  62. package/server/applications/comments/services/comments-queries.service.js.map +1 -1
  63. package/server/applications/files/adapters/files-indexer-mysql.service.js +29 -12
  64. package/server/applications/files/adapters/files-indexer-mysql.service.js.map +1 -1
  65. package/server/applications/files/adapters/files-indexer-mysql.service.spec.js +1 -5
  66. package/server/applications/files/adapters/files-indexer-mysql.service.spec.js.map +1 -1
  67. package/server/applications/files/constants/cache.js +1 -5
  68. package/server/applications/files/constants/cache.js.map +1 -1
  69. package/server/applications/files/constants/compress.js +1 -5
  70. package/server/applications/files/constants/compress.js.map +1 -1
  71. package/server/applications/files/constants/files.js +1 -5
  72. package/server/applications/files/constants/files.js.map +1 -1
  73. package/server/applications/files/constants/indexing.js +1 -5
  74. package/server/applications/files/constants/indexing.js.map +1 -1
  75. package/server/applications/files/constants/operations.js +1 -5
  76. package/server/applications/files/constants/operations.js.map +1 -1
  77. package/server/applications/files/constants/routes.js +1 -5
  78. package/server/applications/files/constants/routes.js.map +1 -1
  79. package/server/applications/files/constants/samples.js +1 -5
  80. package/server/applications/files/constants/samples.js.map +1 -1
  81. package/server/applications/files/dto/file-operations.dto.js +1 -5
  82. package/server/applications/files/dto/file-operations.dto.js.map +1 -1
  83. package/server/applications/files/events/file-task-event.js +1 -5
  84. package/server/applications/files/events/file-task-event.js.map +1 -1
  85. package/server/applications/files/files-tasks.controller.js +1 -5
  86. package/server/applications/files/files-tasks.controller.js.map +1 -1
  87. package/server/applications/files/files-tasks.controller.spec.js +1 -5
  88. package/server/applications/files/files-tasks.controller.spec.js.map +1 -1
  89. package/server/applications/files/files.config.js +1 -5
  90. package/server/applications/files/files.config.js.map +1 -1
  91. package/server/applications/files/files.controller.js +1 -5
  92. package/server/applications/files/files.controller.js.map +1 -1
  93. package/server/applications/files/files.controller.spec.js +1 -5
  94. package/server/applications/files/files.controller.spec.js.map +1 -1
  95. package/server/applications/files/files.module.js +1 -5
  96. package/server/applications/files/files.module.js.map +1 -1
  97. package/server/applications/files/interfaces/file-db-props.interface.js +1 -5
  98. package/server/applications/files/interfaces/file-db-props.interface.js.map +1 -1
  99. package/server/applications/files/interfaces/file-lock.interface.js +1 -5
  100. package/server/applications/files/interfaces/file-lock.interface.js.map +1 -1
  101. package/server/applications/files/interfaces/file-parse-index.js +1 -5
  102. package/server/applications/files/interfaces/file-parse-index.js.map +1 -1
  103. package/server/applications/files/interfaces/file-props.interface.js +1 -5
  104. package/server/applications/files/interfaces/file-props.interface.js.map +1 -1
  105. package/server/applications/files/interfaces/file-recent-location.interface.js +1 -5
  106. package/server/applications/files/interfaces/file-recent-location.interface.js.map +1 -1
  107. package/server/applications/files/interfaces/file-space.interface.js +1 -5
  108. package/server/applications/files/interfaces/file-space.interface.js.map +1 -1
  109. package/server/applications/files/interfaces/file-tree.interface.js +1 -5
  110. package/server/applications/files/interfaces/file-tree.interface.js.map +1 -1
  111. package/server/applications/files/models/file-error.js +1 -5
  112. package/server/applications/files/models/file-error.js.map +1 -1
  113. package/server/applications/files/models/file-lock-error.js +1 -5
  114. package/server/applications/files/models/file-lock-error.js.map +1 -1
  115. package/server/applications/files/models/file-task.js +1 -5
  116. package/server/applications/files/models/file-task.js.map +1 -1
  117. package/server/applications/files/models/files-indexer.js +1 -5
  118. package/server/applications/files/models/files-indexer.js.map +1 -1
  119. package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js +1 -5
  120. package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js.map +1 -1
  121. package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js +21 -10
  122. package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js.map +1 -1
  123. package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js +1 -5
  124. package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js.map +1 -1
  125. package/server/applications/files/modules/collabora-online/collabora-online.config.js +1 -5
  126. package/server/applications/files/modules/collabora-online/collabora-online.config.js.map +1 -1
  127. package/server/applications/files/modules/collabora-online/collabora-online.constants.js +1 -5
  128. package/server/applications/files/modules/collabora-online/collabora-online.constants.js.map +1 -1
  129. package/server/applications/files/modules/collabora-online/collabora-online.controller.js +1 -5
  130. package/server/applications/files/modules/collabora-online/collabora-online.controller.js.map +1 -1
  131. package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js +1 -5
  132. package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js.map +1 -1
  133. package/server/applications/files/modules/collabora-online/collabora-online.dtos.js +1 -5
  134. package/server/applications/files/modules/collabora-online/collabora-online.dtos.js.map +1 -1
  135. package/server/applications/files/modules/collabora-online/collabora-online.guard.js +1 -5
  136. package/server/applications/files/modules/collabora-online/collabora-online.guard.js.map +1 -1
  137. package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js +1 -5
  138. package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js.map +1 -1
  139. package/server/applications/files/modules/collabora-online/collabora-online.interface.js +1 -5
  140. package/server/applications/files/modules/collabora-online/collabora-online.interface.js.map +1 -1
  141. package/server/applications/files/modules/collabora-online/collabora-online.module.js +1 -5
  142. package/server/applications/files/modules/collabora-online/collabora-online.module.js.map +1 -1
  143. package/server/applications/files/modules/collabora-online/collabora-online.routes.js +1 -5
  144. package/server/applications/files/modules/collabora-online/collabora-online.routes.js.map +1 -1
  145. package/server/applications/files/modules/collabora-online/collabora-online.strategy.js +1 -5
  146. package/server/applications/files/modules/collabora-online/collabora-online.strategy.js.map +1 -1
  147. package/server/applications/files/modules/collabora-online/collabora-online.utils.js +1 -5
  148. package/server/applications/files/modules/collabora-online/collabora-online.utils.js.map +1 -1
  149. package/server/applications/files/modules/file-editor-providers.interface.js +6 -0
  150. package/server/applications/files/modules/file-editor-providers.interface.js.map +1 -0
  151. package/server/applications/files/modules/only-office/only-office-environment.decorator.js +1 -5
  152. package/server/applications/files/modules/only-office/only-office-environment.decorator.js.map +1 -1
  153. package/server/applications/files/modules/only-office/only-office-manager.service.js +57 -19
  154. package/server/applications/files/modules/only-office/only-office-manager.service.js.map +1 -1
  155. package/server/applications/files/modules/only-office/only-office-manager.service.spec.js +1 -5
  156. package/server/applications/files/modules/only-office/only-office-manager.service.spec.js.map +1 -1
  157. package/server/applications/files/modules/only-office/only-office.config.js +1 -5
  158. package/server/applications/files/modules/only-office/only-office.config.js.map +1 -1
  159. package/server/applications/files/modules/only-office/only-office.constants.js +1 -5
  160. package/server/applications/files/modules/only-office/only-office.constants.js.map +1 -1
  161. package/server/applications/files/modules/only-office/only-office.controller.js +1 -5
  162. package/server/applications/files/modules/only-office/only-office.controller.js.map +1 -1
  163. package/server/applications/files/modules/only-office/only-office.controller.spec.js +1 -5
  164. package/server/applications/files/modules/only-office/only-office.controller.spec.js.map +1 -1
  165. package/server/applications/files/modules/only-office/only-office.dtos.js +1 -5
  166. package/server/applications/files/modules/only-office/only-office.dtos.js.map +1 -1
  167. package/server/applications/files/modules/only-office/only-office.guard.js +1 -5
  168. package/server/applications/files/modules/only-office/only-office.guard.js.map +1 -1
  169. package/server/applications/files/modules/only-office/only-office.guard.spec.js +1 -5
  170. package/server/applications/files/modules/only-office/only-office.guard.spec.js.map +1 -1
  171. package/server/applications/files/modules/only-office/only-office.interface.js +1 -5
  172. package/server/applications/files/modules/only-office/only-office.interface.js.map +1 -1
  173. package/server/applications/files/modules/only-office/only-office.module.js +1 -5
  174. package/server/applications/files/modules/only-office/only-office.module.js.map +1 -1
  175. package/server/applications/files/modules/only-office/only-office.routes.js +1 -5
  176. package/server/applications/files/modules/only-office/only-office.routes.js.map +1 -1
  177. package/server/applications/files/modules/only-office/only-office.strategy.js +1 -5
  178. package/server/applications/files/modules/only-office/only-office.strategy.js.map +1 -1
  179. package/server/applications/files/schemas/file-content.interface.js +1 -5
  180. package/server/applications/files/schemas/file-content.interface.js.map +1 -1
  181. package/server/applications/files/schemas/file-recent.interface.js +1 -5
  182. package/server/applications/files/schemas/file-recent.interface.js.map +1 -1
  183. package/server/applications/files/schemas/file.interface.js +1 -5
  184. package/server/applications/files/schemas/file.interface.js.map +1 -1
  185. package/server/applications/files/schemas/files-content.schema.js +1 -5
  186. package/server/applications/files/schemas/files-content.schema.js.map +1 -1
  187. package/server/applications/files/schemas/files-recents.schema.js +1 -5
  188. package/server/applications/files/schemas/files-recents.schema.js.map +1 -1
  189. package/server/applications/files/schemas/files.schema.js +1 -5
  190. package/server/applications/files/schemas/files.schema.js.map +1 -1
  191. package/server/applications/files/services/files-content-manager.service.js +45 -16
  192. package/server/applications/files/services/files-content-manager.service.js.map +1 -1
  193. package/server/applications/files/services/files-lock-manager.service.js +53 -18
  194. package/server/applications/files/services/files-lock-manager.service.js.map +1 -1
  195. package/server/applications/files/services/files-lock-manager.service.spec.js +1 -5
  196. package/server/applications/files/services/files-lock-manager.service.spec.js.map +1 -1
  197. package/server/applications/files/services/files-manager.service.js +77 -24
  198. package/server/applications/files/services/files-manager.service.js.map +1 -1
  199. package/server/applications/files/services/files-manager.service.spec.js +1 -5
  200. package/server/applications/files/services/files-manager.service.spec.js.map +1 -1
  201. package/server/applications/files/services/files-methods.service.js +5 -6
  202. package/server/applications/files/services/files-methods.service.js.map +1 -1
  203. package/server/applications/files/services/files-methods.service.spec.js +1 -5
  204. package/server/applications/files/services/files-methods.service.spec.js.map +1 -1
  205. package/server/applications/files/services/files-parser.service.js +13 -8
  206. package/server/applications/files/services/files-parser.service.js.map +1 -1
  207. package/server/applications/files/services/files-parser.service.spec.js +1 -5
  208. package/server/applications/files/services/files-parser.service.spec.js.map +1 -1
  209. package/server/applications/files/services/files-queries.service.js +29 -12
  210. package/server/applications/files/services/files-queries.service.js.map +1 -1
  211. package/server/applications/files/services/files-recents.service.js +1 -5
  212. package/server/applications/files/services/files-recents.service.js.map +1 -1
  213. package/server/applications/files/services/files-recents.service.spec.js +1 -5
  214. package/server/applications/files/services/files-recents.service.spec.js.map +1 -1
  215. package/server/applications/files/services/files-scheduler.service.js +77 -24
  216. package/server/applications/files/services/files-scheduler.service.js.map +1 -1
  217. package/server/applications/files/services/files-search-manager.service.js +9 -7
  218. package/server/applications/files/services/files-search-manager.service.js.map +1 -1
  219. package/server/applications/files/services/files-search-manager.service.spec.js +1 -5
  220. package/server/applications/files/services/files-search-manager.service.spec.js.map +1 -1
  221. package/server/applications/files/services/files-tasks-manager.service.js +77 -24
  222. package/server/applications/files/services/files-tasks-manager.service.js.map +1 -1
  223. package/server/applications/files/services/files-tasks-manager.service.spec.js +1 -5
  224. package/server/applications/files/services/files-tasks-manager.service.spec.js.map +1 -1
  225. package/server/applications/files/utils/doc-textify/adapters/excel.js +1 -5
  226. package/server/applications/files/utils/doc-textify/adapters/excel.js.map +1 -1
  227. package/server/applications/files/utils/doc-textify/adapters/html.js +1 -5
  228. package/server/applications/files/utils/doc-textify/adapters/html.js.map +1 -1
  229. package/server/applications/files/utils/doc-textify/adapters/open-office.js +1 -5
  230. package/server/applications/files/utils/doc-textify/adapters/open-office.js.map +1 -1
  231. package/server/applications/files/utils/doc-textify/adapters/pdf.js +1 -5
  232. package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -1
  233. package/server/applications/files/utils/doc-textify/adapters/power-point.js +1 -5
  234. package/server/applications/files/utils/doc-textify/adapters/power-point.js.map +1 -1
  235. package/server/applications/files/utils/doc-textify/adapters/text.js +1 -5
  236. package/server/applications/files/utils/doc-textify/adapters/text.js.map +1 -1
  237. package/server/applications/files/utils/doc-textify/adapters/word.js +1 -5
  238. package/server/applications/files/utils/doc-textify/adapters/word.js.map +1 -1
  239. package/server/applications/files/utils/doc-textify/doc-textify.js +1 -5
  240. package/server/applications/files/utils/doc-textify/doc-textify.js.map +1 -1
  241. package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js +1 -5
  242. package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js.map +1 -1
  243. package/server/applications/files/utils/doc-textify/utils/clean.js +1 -5
  244. package/server/applications/files/utils/doc-textify/utils/clean.js.map +1 -1
  245. package/server/applications/files/utils/files-search.js +1 -5
  246. package/server/applications/files/utils/files-search.js.map +1 -1
  247. package/server/applications/files/utils/files-tree.js +1 -5
  248. package/server/applications/files/utils/files-tree.js.map +1 -1
  249. package/server/applications/files/utils/files.js +1 -5
  250. package/server/applications/files/utils/files.js.map +1 -1
  251. package/server/applications/files/utils/send-file.js +1 -5
  252. package/server/applications/files/utils/send-file.js.map +1 -1
  253. package/server/applications/files/utils/unzip-file.js +1 -5
  254. package/server/applications/files/utils/unzip-file.js.map +1 -1
  255. package/server/applications/files/utils/url-file.js +1 -5
  256. package/server/applications/files/utils/url-file.js.map +1 -1
  257. package/server/applications/links/constants/cache.js +1 -5
  258. package/server/applications/links/constants/cache.js.map +1 -1
  259. package/server/applications/links/constants/links.js +1 -5
  260. package/server/applications/links/constants/links.js.map +1 -1
  261. package/server/applications/links/constants/routes.js +1 -5
  262. package/server/applications/links/constants/routes.js.map +1 -1
  263. package/server/applications/links/dto/create-or-update-link.dto.js +1 -5
  264. package/server/applications/links/dto/create-or-update-link.dto.js.map +1 -1
  265. package/server/applications/links/interfaces/link-guest.interface.js +1 -5
  266. package/server/applications/links/interfaces/link-guest.interface.js.map +1 -1
  267. package/server/applications/links/interfaces/link-space.interface.js +1 -5
  268. package/server/applications/links/interfaces/link-space.interface.js.map +1 -1
  269. package/server/applications/links/links.controller.js +1 -5
  270. package/server/applications/links/links.controller.js.map +1 -1
  271. package/server/applications/links/links.controller.spec.js +1 -5
  272. package/server/applications/links/links.controller.spec.js.map +1 -1
  273. package/server/applications/links/schemas/link.interface.js +1 -5
  274. package/server/applications/links/schemas/link.interface.js.map +1 -1
  275. package/server/applications/links/schemas/links.schema.js +1 -5
  276. package/server/applications/links/schemas/links.schema.js.map +1 -1
  277. package/server/applications/links/services/links-manager.service.js +55 -20
  278. package/server/applications/links/services/links-manager.service.js.map +1 -1
  279. package/server/applications/links/services/links-manager.service.spec.js +3 -7
  280. package/server/applications/links/services/links-manager.service.spec.js.map +1 -1
  281. package/server/applications/links/services/links-queries.service.js +1 -5
  282. package/server/applications/links/services/links-queries.service.js.map +1 -1
  283. package/server/applications/notifications/constants/notifications.js +1 -5
  284. package/server/applications/notifications/constants/notifications.js.map +1 -1
  285. package/server/applications/notifications/constants/routes.js +1 -5
  286. package/server/applications/notifications/constants/routes.js.map +1 -1
  287. package/server/applications/notifications/constants/websocket.js +1 -5
  288. package/server/applications/notifications/constants/websocket.js.map +1 -1
  289. package/server/applications/notifications/i18n/de.js +1 -9
  290. package/server/applications/notifications/i18n/de.js.map +1 -1
  291. package/server/applications/notifications/i18n/es.js +1 -5
  292. package/server/applications/notifications/i18n/es.js.map +1 -1
  293. package/server/applications/notifications/i18n/fr.js +1 -5
  294. package/server/applications/notifications/i18n/fr.js.map +1 -1
  295. package/server/applications/notifications/i18n/hi.js +1 -5
  296. package/server/applications/notifications/i18n/hi.js.map +1 -1
  297. package/server/applications/notifications/i18n/index.js +1 -5
  298. package/server/applications/notifications/i18n/index.js.map +1 -1
  299. package/server/applications/notifications/i18n/it.js +1 -5
  300. package/server/applications/notifications/i18n/it.js.map +1 -1
  301. package/server/applications/notifications/i18n/ja.js +1 -5
  302. package/server/applications/notifications/i18n/ja.js.map +1 -1
  303. package/server/applications/notifications/i18n/ko.js +1 -5
  304. package/server/applications/notifications/i18n/ko.js.map +1 -1
  305. package/server/applications/notifications/i18n/pl.js +1 -5
  306. package/server/applications/notifications/i18n/pl.js.map +1 -1
  307. package/server/applications/notifications/i18n/pt.js +1 -5
  308. package/server/applications/notifications/i18n/pt.js.map +1 -1
  309. package/server/applications/notifications/i18n/pt_br.js +1 -5
  310. package/server/applications/notifications/i18n/pt_br.js.map +1 -1
  311. package/server/applications/notifications/i18n/ru.js +1 -5
  312. package/server/applications/notifications/i18n/ru.js.map +1 -1
  313. package/server/applications/notifications/i18n/tr.js +1 -5
  314. package/server/applications/notifications/i18n/tr.js.map +1 -1
  315. package/server/applications/notifications/i18n/zh.js +1 -5
  316. package/server/applications/notifications/i18n/zh.js.map +1 -1
  317. package/server/applications/notifications/interfaces/notification-properties.interface.js +1 -5
  318. package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -1
  319. package/server/applications/notifications/interfaces/user-mail-notification.interface.js +1 -5
  320. package/server/applications/notifications/interfaces/user-mail-notification.interface.js.map +1 -1
  321. package/server/applications/notifications/mails/models.js +1 -5
  322. package/server/applications/notifications/mails/models.js.map +1 -1
  323. package/server/applications/notifications/mails/templates.js +1 -5
  324. package/server/applications/notifications/mails/templates.js.map +1 -1
  325. package/server/applications/notifications/mails/urls.js +1 -5
  326. package/server/applications/notifications/mails/urls.js.map +1 -1
  327. package/server/applications/notifications/notifications.controller.js +1 -5
  328. package/server/applications/notifications/notifications.controller.js.map +1 -1
  329. package/server/applications/notifications/notifications.controller.spec.js +1 -5
  330. package/server/applications/notifications/notifications.controller.spec.js.map +1 -1
  331. package/server/applications/notifications/notifications.gateway.js +1 -5
  332. package/server/applications/notifications/notifications.gateway.js.map +1 -1
  333. package/server/applications/notifications/notifications.module.js +1 -5
  334. package/server/applications/notifications/notifications.module.js.map +1 -1
  335. package/server/applications/notifications/schemas/notification.interface.js +1 -5
  336. package/server/applications/notifications/schemas/notification.interface.js.map +1 -1
  337. package/server/applications/notifications/schemas/notifications.schema.js +1 -5
  338. package/server/applications/notifications/schemas/notifications.schema.js.map +1 -1
  339. package/server/applications/notifications/services/notifications-manager.service.js +25 -11
  340. package/server/applications/notifications/services/notifications-manager.service.js.map +1 -1
  341. package/server/applications/notifications/services/notifications-manager.service.spec.js +20 -11
  342. package/server/applications/notifications/services/notifications-manager.service.spec.js.map +1 -1
  343. package/server/applications/notifications/services/notifications-queries.service.js +1 -5
  344. package/server/applications/notifications/services/notifications-queries.service.js.map +1 -1
  345. package/server/applications/shares/constants/routes.js +1 -5
  346. package/server/applications/shares/constants/routes.js.map +1 -1
  347. package/server/applications/shares/constants/shares.js +1 -5
  348. package/server/applications/shares/constants/shares.js.map +1 -1
  349. package/server/applications/shares/dto/create-or-update-share.dto.js +1 -5
  350. package/server/applications/shares/dto/create-or-update-share.dto.js.map +1 -1
  351. package/server/applications/shares/interfaces/share-child.interface.js +1 -5
  352. package/server/applications/shares/interfaces/share-child.interface.js.map +1 -1
  353. package/server/applications/shares/interfaces/share-env.interface.js +1 -5
  354. package/server/applications/shares/interfaces/share-env.interface.js.map +1 -1
  355. package/server/applications/shares/interfaces/share-file.interface.js +1 -5
  356. package/server/applications/shares/interfaces/share-file.interface.js.map +1 -1
  357. package/server/applications/shares/interfaces/share-link.interface.js +1 -5
  358. package/server/applications/shares/interfaces/share-link.interface.js.map +1 -1
  359. package/server/applications/shares/interfaces/share-props.interface.js +1 -5
  360. package/server/applications/shares/interfaces/share-props.interface.js.map +1 -1
  361. package/server/applications/shares/models/share-child.model.js +1 -5
  362. package/server/applications/shares/models/share-child.model.js.map +1 -1
  363. package/server/applications/shares/schemas/share-members.interface.js +1 -5
  364. package/server/applications/shares/schemas/share-members.interface.js.map +1 -1
  365. package/server/applications/shares/schemas/share.interface.js +1 -5
  366. package/server/applications/shares/schemas/share.interface.js.map +1 -1
  367. package/server/applications/shares/schemas/shares-members.schema.js +1 -5
  368. package/server/applications/shares/schemas/shares-members.schema.js.map +1 -1
  369. package/server/applications/shares/schemas/shares.schema.js +1 -5
  370. package/server/applications/shares/schemas/shares.schema.js.map +1 -1
  371. package/server/applications/shares/services/shares-manager.service.js +214 -68
  372. package/server/applications/shares/services/shares-manager.service.js.map +1 -1
  373. package/server/applications/shares/services/shares-manager.service.spec.js +1 -5
  374. package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -1
  375. package/server/applications/shares/services/shares-queries.service.js +49 -17
  376. package/server/applications/shares/services/shares-queries.service.js.map +1 -1
  377. package/server/applications/shares/shares.controller.js +1 -5
  378. package/server/applications/shares/shares.controller.js.map +1 -1
  379. package/server/applications/shares/shares.controller.spec.js +1 -5
  380. package/server/applications/shares/shares.controller.spec.js.map +1 -1
  381. package/server/applications/shares/shares.module.js +1 -5
  382. package/server/applications/shares/shares.module.js.map +1 -1
  383. package/server/applications/spaces/constants/cache.js +1 -5
  384. package/server/applications/spaces/constants/cache.js.map +1 -1
  385. package/server/applications/spaces/constants/routes.js +1 -5
  386. package/server/applications/spaces/constants/routes.js.map +1 -1
  387. package/server/applications/spaces/constants/spaces.js +1 -5
  388. package/server/applications/spaces/constants/spaces.js.map +1 -1
  389. package/server/applications/spaces/decorators/space-override-permission.decorator.js +1 -5
  390. package/server/applications/spaces/decorators/space-override-permission.decorator.js.map +1 -1
  391. package/server/applications/spaces/decorators/space-skip-guard.decorator.js +1 -5
  392. package/server/applications/spaces/decorators/space-skip-guard.decorator.js.map +1 -1
  393. package/server/applications/spaces/decorators/space-skip-permissions.decorator.js +1 -5
  394. package/server/applications/spaces/decorators/space-skip-permissions.decorator.js.map +1 -1
  395. package/server/applications/spaces/decorators/space.decorator.js +1 -5
  396. package/server/applications/spaces/decorators/space.decorator.js.map +1 -1
  397. package/server/applications/spaces/dto/create-or-update-space.dto.js +1 -5
  398. package/server/applications/spaces/dto/create-or-update-space.dto.js.map +1 -1
  399. package/server/applications/spaces/dto/delete-space.dto.js +1 -5
  400. package/server/applications/spaces/dto/delete-space.dto.js.map +1 -1
  401. package/server/applications/spaces/dto/search-space.dto.js +1 -5
  402. package/server/applications/spaces/dto/search-space.dto.js.map +1 -1
  403. package/server/applications/spaces/dto/space-roots.dto.js +1 -5
  404. package/server/applications/spaces/dto/space-roots.dto.js.map +1 -1
  405. package/server/applications/spaces/guards/space.guard.js +17 -9
  406. package/server/applications/spaces/guards/space.guard.js.map +1 -1
  407. package/server/applications/spaces/guards/space.guard.spec.js +1 -5
  408. package/server/applications/spaces/guards/space.guard.spec.js.map +1 -1
  409. package/server/applications/spaces/interfaces/space-diff.interface.js +1 -5
  410. package/server/applications/spaces/interfaces/space-diff.interface.js.map +1 -1
  411. package/server/applications/spaces/interfaces/space-files.interface.js +1 -5
  412. package/server/applications/spaces/interfaces/space-files.interface.js.map +1 -1
  413. package/server/applications/spaces/interfaces/space-request.interface.js +1 -5
  414. package/server/applications/spaces/interfaces/space-request.interface.js.map +1 -1
  415. package/server/applications/spaces/interfaces/space-trash.interface.js +1 -5
  416. package/server/applications/spaces/interfaces/space-trash.interface.js.map +1 -1
  417. package/server/applications/spaces/models/space-env.model.js +1 -5
  418. package/server/applications/spaces/models/space-env.model.js.map +1 -1
  419. package/server/applications/spaces/models/space-props.model.js +1 -5
  420. package/server/applications/spaces/models/space-props.model.js.map +1 -1
  421. package/server/applications/spaces/models/space-root-props.model.js +1 -5
  422. package/server/applications/spaces/models/space-root-props.model.js.map +1 -1
  423. package/server/applications/spaces/models/space.model.js +1 -5
  424. package/server/applications/spaces/models/space.model.js.map +1 -1
  425. package/server/applications/spaces/schemas/space-members.interface.js +1 -5
  426. package/server/applications/spaces/schemas/space-members.interface.js.map +1 -1
  427. package/server/applications/spaces/schemas/space-root.interface.js +1 -5
  428. package/server/applications/spaces/schemas/space-root.interface.js.map +1 -1
  429. package/server/applications/spaces/schemas/space.interface.js +1 -5
  430. package/server/applications/spaces/schemas/space.interface.js.map +1 -1
  431. package/server/applications/spaces/schemas/spaces-members.schema.js +1 -5
  432. package/server/applications/spaces/schemas/spaces-members.schema.js.map +1 -1
  433. package/server/applications/spaces/schemas/spaces-roots.schema.js +1 -5
  434. package/server/applications/spaces/schemas/spaces-roots.schema.js.map +1 -1
  435. package/server/applications/spaces/schemas/spaces.schema.js +1 -5
  436. package/server/applications/spaces/schemas/spaces.schema.js.map +1 -1
  437. package/server/applications/spaces/services/spaces-browser.service.js +77 -24
  438. package/server/applications/spaces/services/spaces-browser.service.js.map +1 -1
  439. package/server/applications/spaces/services/spaces-browser.service.spec.js +1 -5
  440. package/server/applications/spaces/services/spaces-browser.service.spec.js.map +1 -1
  441. package/server/applications/spaces/services/spaces-manager.service.js +193 -53
  442. package/server/applications/spaces/services/spaces-manager.service.js.map +1 -1
  443. package/server/applications/spaces/services/spaces-manager.service.spec.js +1 -5
  444. package/server/applications/spaces/services/spaces-manager.service.spec.js.map +1 -1
  445. package/server/applications/spaces/services/spaces-queries.service.js +65 -21
  446. package/server/applications/spaces/services/spaces-queries.service.js.map +1 -1
  447. package/server/applications/spaces/services/spaces-scheduler.service.js +49 -17
  448. package/server/applications/spaces/services/spaces-scheduler.service.js.map +1 -1
  449. package/server/applications/spaces/spaces.controller.js +1 -5
  450. package/server/applications/spaces/spaces.controller.js.map +1 -1
  451. package/server/applications/spaces/spaces.controller.spec.js +1 -5
  452. package/server/applications/spaces/spaces.controller.spec.js.map +1 -1
  453. package/server/applications/spaces/spaces.module.js +1 -5
  454. package/server/applications/spaces/spaces.module.js.map +1 -1
  455. package/server/applications/spaces/utils/paths.js +1 -5
  456. package/server/applications/spaces/utils/paths.js.map +1 -1
  457. package/server/applications/spaces/utils/permissions.js +1 -5
  458. package/server/applications/spaces/utils/permissions.js.map +1 -1
  459. package/server/applications/spaces/utils/routes.js +1 -5
  460. package/server/applications/spaces/utils/routes.js.map +1 -1
  461. package/server/applications/sync/constants/auth.js +1 -5
  462. package/server/applications/sync/constants/auth.js.map +1 -1
  463. package/server/applications/sync/constants/routes.js +6 -5
  464. package/server/applications/sync/constants/routes.js.map +1 -1
  465. package/server/applications/sync/constants/store.js +1 -9
  466. package/server/applications/sync/constants/store.js.map +1 -1
  467. package/server/applications/sync/constants/sync.js +2 -6
  468. package/server/applications/sync/constants/sync.js.map +1 -1
  469. package/server/applications/sync/decorators/sync-context.decorator.js +1 -5
  470. package/server/applications/sync/decorators/sync-context.decorator.js.map +1 -1
  471. package/server/applications/sync/decorators/sync-environment.decorator.js +1 -5
  472. package/server/applications/sync/decorators/sync-environment.decorator.js.map +1 -1
  473. package/server/applications/sync/dtos/sync-client-auth.dto.js +12 -8
  474. package/server/applications/sync/dtos/sync-client-auth.dto.js.map +1 -1
  475. package/server/applications/sync/dtos/sync-client-info.dto.js +49 -0
  476. package/server/applications/sync/dtos/sync-client-info.dto.js.map +1 -0
  477. package/server/applications/sync/dtos/sync-client-registration.dto.js +34 -11
  478. package/server/applications/sync/dtos/sync-client-registration.dto.js.map +1 -1
  479. package/server/applications/sync/dtos/sync-operations.dto.js +1 -5
  480. package/server/applications/sync/dtos/sync-operations.dto.js.map +1 -1
  481. package/server/applications/sync/dtos/sync-path.dto.js +1 -5
  482. package/server/applications/sync/dtos/sync-path.dto.js.map +1 -1
  483. package/server/applications/sync/dtos/sync-upload.dto.js +1 -5
  484. package/server/applications/sync/dtos/sync-upload.dto.js.map +1 -1
  485. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js +1 -5
  486. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js.map +1 -1
  487. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js +1 -5
  488. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js.map +1 -1
  489. package/server/applications/sync/interfaces/store-manifest.interface.js +1 -5
  490. package/server/applications/sync/interfaces/store-manifest.interface.js.map +1 -1
  491. package/server/applications/sync/interfaces/sync-client-auth.interface.js +1 -25
  492. package/server/applications/sync/interfaces/sync-client-auth.interface.js.map +1 -1
  493. package/server/applications/sync/interfaces/sync-client-paths.interface.js +1 -5
  494. package/server/applications/sync/interfaces/sync-client-paths.interface.js.map +1 -1
  495. package/server/applications/sync/interfaces/sync-client.interface.js +1 -5
  496. package/server/applications/sync/interfaces/sync-client.interface.js.map +1 -1
  497. package/server/applications/sync/interfaces/sync-diff.interface.js +1 -5
  498. package/server/applications/sync/interfaces/sync-diff.interface.js.map +1 -1
  499. package/server/applications/sync/interfaces/sync-path.interface.js +1 -5
  500. package/server/applications/sync/interfaces/sync-path.interface.js.map +1 -1
  501. package/server/applications/sync/schemas/sync-client.interface.js +1 -5
  502. package/server/applications/sync/schemas/sync-client.interface.js.map +1 -1
  503. package/server/applications/sync/schemas/sync-clients.schema.js +1 -5
  504. package/server/applications/sync/schemas/sync-clients.schema.js.map +1 -1
  505. package/server/applications/sync/schemas/sync-path.interface.js +1 -5
  506. package/server/applications/sync/schemas/sync-path.interface.js.map +1 -1
  507. package/server/applications/sync/schemas/sync-paths.schema.js +1 -5
  508. package/server/applications/sync/schemas/sync-paths.schema.js.map +1 -1
  509. package/server/applications/sync/services/sync-clients-manager.service.js +108 -44
  510. package/server/applications/sync/services/sync-clients-manager.service.js.map +1 -1
  511. package/server/applications/sync/services/sync-clients-manager.service.spec.js +14 -17
  512. package/server/applications/sync/services/sync-clients-manager.service.spec.js.map +1 -1
  513. package/server/applications/sync/services/sync-manager.service.js +29 -12
  514. package/server/applications/sync/services/sync-manager.service.js.map +1 -1
  515. package/server/applications/sync/services/sync-manager.service.spec.js +1 -5
  516. package/server/applications/sync/services/sync-manager.service.spec.js.map +1 -1
  517. package/server/applications/sync/services/sync-paths-manager.service.js +27 -17
  518. package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -1
  519. package/server/applications/sync/services/sync-paths-manager.service.spec.js +11 -15
  520. package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -1
  521. package/server/applications/sync/services/sync-queries.service.js +1 -5
  522. package/server/applications/sync/services/sync-queries.service.js.map +1 -1
  523. package/server/applications/sync/sync.config.js +1 -5
  524. package/server/applications/sync/sync.config.js.map +1 -1
  525. package/server/applications/sync/sync.controller.js +21 -6
  526. package/server/applications/sync/sync.controller.js.map +1 -1
  527. package/server/applications/sync/sync.controller.spec.js +1 -5
  528. package/server/applications/sync/sync.controller.spec.js.map +1 -1
  529. package/server/applications/sync/sync.module.js +1 -5
  530. package/server/applications/sync/sync.module.js.map +1 -1
  531. package/server/applications/sync/utils/functions.js +1 -5
  532. package/server/applications/sync/utils/functions.js.map +1 -1
  533. package/server/applications/sync/utils/normalizedMap.js +1 -5
  534. package/server/applications/sync/utils/normalizedMap.js.map +1 -1
  535. package/server/applications/sync/utils/routes.js +1 -5
  536. package/server/applications/sync/utils/routes.js.map +1 -1
  537. package/server/applications/users/admin-users.controller.js +2 -6
  538. package/server/applications/users/admin-users.controller.js.map +1 -1
  539. package/server/applications/users/admin-users.controller.spec.js +6 -10
  540. package/server/applications/users/admin-users.controller.spec.js.map +1 -1
  541. package/server/applications/users/constants/group.js +1 -5
  542. package/server/applications/users/constants/group.js.map +1 -1
  543. package/server/applications/users/constants/member.js +1 -5
  544. package/server/applications/users/constants/member.js.map +1 -1
  545. package/server/applications/users/constants/routes.js +1 -5
  546. package/server/applications/users/constants/routes.js.map +1 -1
  547. package/server/applications/users/constants/user.js +1 -5
  548. package/server/applications/users/constants/user.js.map +1 -1
  549. package/server/applications/users/constants/websocket.js +1 -5
  550. package/server/applications/users/constants/websocket.js.map +1 -1
  551. package/server/applications/users/decorators/permissions.decorator.js +1 -5
  552. package/server/applications/users/decorators/permissions.decorator.js.map +1 -1
  553. package/server/applications/users/decorators/roles.decorator.js +1 -5
  554. package/server/applications/users/decorators/roles.decorator.js.map +1 -1
  555. package/server/applications/users/decorators/user.decorator.js +1 -5
  556. package/server/applications/users/decorators/user.decorator.js.map +1 -1
  557. package/server/applications/users/dto/create-or-update-group.dto.js +1 -5
  558. package/server/applications/users/dto/create-or-update-group.dto.js.map +1 -1
  559. package/server/applications/users/dto/create-or-update-user.dto.js +1 -5
  560. package/server/applications/users/dto/create-or-update-user.dto.js.map +1 -1
  561. package/server/applications/users/dto/delete-user.dto.js +1 -5
  562. package/server/applications/users/dto/delete-user.dto.js.map +1 -1
  563. package/server/applications/users/dto/search-members.dto.js +1 -5
  564. package/server/applications/users/dto/search-members.dto.js.map +1 -1
  565. package/server/applications/users/dto/user-properties.dto.js +1 -5
  566. package/server/applications/users/dto/user-properties.dto.js.map +1 -1
  567. package/server/applications/users/guards/permissions.guard.js +1 -5
  568. package/server/applications/users/guards/permissions.guard.js.map +1 -1
  569. package/server/applications/users/guards/permissions.guard.spec.js +1 -5
  570. package/server/applications/users/guards/permissions.guard.spec.js.map +1 -1
  571. package/server/applications/users/guards/roles.guard.js +1 -5
  572. package/server/applications/users/guards/roles.guard.js.map +1 -1
  573. package/server/applications/users/guards/roles.guard.spec.js +1 -5
  574. package/server/applications/users/guards/roles.guard.spec.js.map +1 -1
  575. package/server/applications/users/interfaces/admin-group.interface.js +1 -5
  576. package/server/applications/users/interfaces/admin-group.interface.js.map +1 -1
  577. package/server/applications/users/interfaces/admin-user.interface.js +1 -5
  578. package/server/applications/users/interfaces/admin-user.interface.js.map +1 -1
  579. package/server/applications/users/interfaces/group-browse.interface.js +1 -5
  580. package/server/applications/users/interfaces/group-browse.interface.js.map +1 -1
  581. package/server/applications/users/interfaces/group-member.js +1 -5
  582. package/server/applications/users/interfaces/group-member.js.map +1 -1
  583. package/server/applications/users/interfaces/guest-user.interface.js +1 -5
  584. package/server/applications/users/interfaces/guest-user.interface.js.map +1 -1
  585. package/server/applications/users/interfaces/member.interface.js +1 -5
  586. package/server/applications/users/interfaces/member.interface.js.map +1 -1
  587. package/server/applications/users/interfaces/owner.interface.js +1 -5
  588. package/server/applications/users/interfaces/owner.interface.js.map +1 -1
  589. package/server/applications/users/interfaces/user-secrets.interface.js +1 -5
  590. package/server/applications/users/interfaces/user-secrets.interface.js.map +1 -1
  591. package/server/applications/users/interfaces/websocket.interface.js +1 -5
  592. package/server/applications/users/interfaces/websocket.interface.js.map +1 -1
  593. package/server/applications/users/models/user.model.js +1 -5
  594. package/server/applications/users/models/user.model.js.map +1 -1
  595. package/server/applications/users/schemas/group.interface.js +1 -5
  596. package/server/applications/users/schemas/group.interface.js.map +1 -1
  597. package/server/applications/users/schemas/groups.schema.js +1 -5
  598. package/server/applications/users/schemas/groups.schema.js.map +1 -1
  599. package/server/applications/users/schemas/user-group.interface.js +1 -5
  600. package/server/applications/users/schemas/user-group.interface.js.map +1 -1
  601. package/server/applications/users/schemas/user.interface.js +1 -5
  602. package/server/applications/users/schemas/user.interface.js.map +1 -1
  603. package/server/applications/users/schemas/users-groups.schema.js +1 -5
  604. package/server/applications/users/schemas/users-groups.schema.js.map +1 -1
  605. package/server/applications/users/schemas/users-guests.schema.js +1 -5
  606. package/server/applications/users/schemas/users-guests.schema.js.map +1 -1
  607. package/server/applications/users/schemas/users.schema.js +1 -5
  608. package/server/applications/users/schemas/users.schema.js.map +1 -1
  609. package/server/applications/users/services/admin-users-manager.service.js +67 -23
  610. package/server/applications/users/services/admin-users-manager.service.js.map +1 -1
  611. package/server/applications/users/services/admin-users-manager.service.spec.js +3 -7
  612. package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -1
  613. package/server/applications/users/services/admin-users-queries.service.js +65 -21
  614. package/server/applications/users/services/admin-users-queries.service.js.map +1 -1
  615. package/server/applications/users/services/users-manager.service.js +81 -25
  616. package/server/applications/users/services/users-manager.service.js.map +1 -1
  617. package/server/applications/users/services/users-manager.service.spec.js +14 -12
  618. package/server/applications/users/services/users-manager.service.spec.js.map +1 -1
  619. package/server/applications/users/services/users-queries.service.js +49 -17
  620. package/server/applications/users/services/users-queries.service.js.map +1 -1
  621. package/server/applications/users/users.controller.js +2 -6
  622. package/server/applications/users/users.controller.js.map +1 -1
  623. package/server/applications/users/users.controller.spec.js +5 -9
  624. package/server/applications/users/users.controller.spec.js.map +1 -1
  625. package/server/applications/users/users.e2e-spec.js +3 -7
  626. package/server/applications/users/users.e2e-spec.js.map +1 -1
  627. package/server/applications/users/users.gateway.js +29 -12
  628. package/server/applications/users/users.gateway.js.map +1 -1
  629. package/server/applications/users/users.gateway.spec.js +1 -5
  630. package/server/applications/users/users.gateway.spec.js.map +1 -1
  631. package/server/applications/users/users.module.js +1 -5
  632. package/server/applications/users/users.module.js.map +1 -1
  633. package/server/applications/users/utils/avatar.js +1 -5
  634. package/server/applications/users/utils/avatar.js.map +1 -1
  635. package/server/applications/users/utils/test.js +1 -5
  636. package/server/applications/users/utils/test.js.map +1 -1
  637. package/server/applications/webdav/constants/routes.js +1 -5
  638. package/server/applications/webdav/constants/routes.js.map +1 -1
  639. package/server/applications/webdav/constants/webdav.js +1 -5
  640. package/server/applications/webdav/constants/webdav.js.map +1 -1
  641. package/server/applications/webdav/decorators/if-header.decorator.js +1 -5
  642. package/server/applications/webdav/decorators/if-header.decorator.js.map +1 -1
  643. package/server/applications/webdav/decorators/webdav-context.decorator.js +1 -5
  644. package/server/applications/webdav/decorators/webdav-context.decorator.js.map +1 -1
  645. package/server/applications/webdav/filters/webdav.filter.js +1 -5
  646. package/server/applications/webdav/filters/webdav.filter.js.map +1 -1
  647. package/server/applications/webdav/filters/webdav.filter.spec.js +1 -5
  648. package/server/applications/webdav/filters/webdav.filter.spec.js.map +1 -1
  649. package/server/applications/webdav/guards/webdav-protocol.guard.js +54 -20
  650. package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -1
  651. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js +54 -0
  652. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js.map +1 -1
  653. package/server/applications/webdav/interfaces/if-header.interface.js +1 -5
  654. package/server/applications/webdav/interfaces/if-header.interface.js.map +1 -1
  655. package/server/applications/webdav/interfaces/webdav.interface.js +1 -5
  656. package/server/applications/webdav/interfaces/webdav.interface.js.map +1 -1
  657. package/server/applications/webdav/models/webdav-file.model.js +1 -5
  658. package/server/applications/webdav/models/webdav-file.model.js.map +1 -1
  659. package/server/applications/webdav/services/webdav-methods.service.js +74 -26
  660. package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
  661. package/server/applications/webdav/services/webdav-methods.service.spec.js +15 -18
  662. package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -1
  663. package/server/applications/webdav/services/webdav-spaces.service.js +17 -9
  664. package/server/applications/webdav/services/webdav-spaces.service.js.map +1 -1
  665. package/server/applications/webdav/services/webdav-spaces.service.spec.js +1 -5
  666. package/server/applications/webdav/services/webdav-spaces.service.spec.js.map +1 -1
  667. package/server/applications/webdav/utils/bootstrap.js +1 -5
  668. package/server/applications/webdav/utils/bootstrap.js.map +1 -1
  669. package/server/applications/webdav/utils/if-header.js +1 -5
  670. package/server/applications/webdav/utils/if-header.js.map +1 -1
  671. package/server/applications/webdav/utils/routes.js +1 -5
  672. package/server/applications/webdav/utils/routes.js.map +1 -1
  673. package/server/applications/webdav/utils/webdav.js +1 -5
  674. package/server/applications/webdav/utils/webdav.js.map +1 -1
  675. package/server/applications/webdav/utils/xml.js +1 -5
  676. package/server/applications/webdav/utils/xml.js.map +1 -1
  677. package/server/applications/webdav/webdav.controller.js +1 -5
  678. package/server/applications/webdav/webdav.controller.js.map +1 -1
  679. package/server/applications/webdav/webdav.controller.spec.js +1 -5
  680. package/server/applications/webdav/webdav.controller.spec.js.map +1 -1
  681. package/server/applications/webdav/webdav.e2e-spec.js +1 -5
  682. package/server/applications/webdav/webdav.e2e-spec.js.map +1 -1
  683. package/server/applications/webdav/webdav.module.js +1 -5
  684. package/server/applications/webdav/webdav.module.js.map +1 -1
  685. package/server/authentication/auth.config.js +23 -123
  686. package/server/authentication/auth.config.js.map +1 -1
  687. package/server/authentication/auth.controller.js +27 -21
  688. package/server/authentication/auth.controller.js.map +1 -1
  689. package/server/authentication/auth.controller.spec.js +6 -10
  690. package/server/authentication/auth.controller.spec.js.map +1 -1
  691. package/server/authentication/auth.e2e-spec.js +1 -5
  692. package/server/authentication/auth.e2e-spec.js.map +1 -1
  693. package/server/authentication/auth.module.js +17 -20
  694. package/server/authentication/auth.module.js.map +1 -1
  695. package/server/authentication/{services/auth-manager.service.js → auth.service.js} +41 -18
  696. package/server/authentication/auth.service.js.map +1 -0
  697. package/server/authentication/{services/auth-manager.service.spec.js → auth.service.spec.js} +6 -10
  698. package/server/authentication/auth.service.spec.js.map +1 -0
  699. package/server/authentication/constants/auth.js +1 -5
  700. package/server/authentication/constants/auth.js.map +1 -1
  701. package/server/authentication/constants/routes.js +41 -30
  702. package/server/authentication/constants/routes.js.map +1 -1
  703. package/server/authentication/constants/scope.js +2 -5
  704. package/server/authentication/constants/scope.js.map +1 -1
  705. package/server/authentication/decorators/auth-token-optional.decorator.js +1 -5
  706. package/server/authentication/decorators/auth-token-optional.decorator.js.map +1 -1
  707. package/server/authentication/decorators/auth-token-skip.decorator.js +1 -5
  708. package/server/authentication/decorators/auth-token-skip.decorator.js.map +1 -1
  709. package/server/authentication/dto/login-response.dto.js +1 -10
  710. package/server/authentication/dto/login-response.dto.js.map +1 -1
  711. package/server/authentication/dto/token-response.dto.js +1 -5
  712. package/server/authentication/dto/token-response.dto.js.map +1 -1
  713. package/server/authentication/guards/auth-anonymous.guard.js +1 -5
  714. package/server/authentication/guards/auth-anonymous.guard.js.map +1 -1
  715. package/server/authentication/guards/auth-anonymous.guard.spec.js +1 -5
  716. package/server/authentication/guards/auth-anonymous.guard.spec.js.map +1 -1
  717. package/server/authentication/guards/auth-anonymous.strategy.js +1 -5
  718. package/server/authentication/guards/auth-anonymous.strategy.js.map +1 -1
  719. package/server/authentication/guards/auth-basic.guard.js +1 -5
  720. package/server/authentication/guards/auth-basic.guard.js.map +1 -1
  721. package/server/authentication/guards/auth-basic.guard.spec.js +13 -14
  722. package/server/authentication/guards/auth-basic.guard.spec.js.map +1 -1
  723. package/server/authentication/guards/auth-basic.strategy.js +10 -11
  724. package/server/authentication/guards/auth-basic.strategy.js.map +1 -1
  725. package/server/authentication/guards/auth-digest.guard.js +1 -5
  726. package/server/authentication/guards/auth-digest.guard.js.map +1 -1
  727. package/server/authentication/guards/auth-digest.strategy.js +1 -5
  728. package/server/authentication/guards/auth-digest.strategy.js.map +1 -1
  729. package/server/authentication/guards/auth-local.guard.js +1 -5
  730. package/server/authentication/guards/auth-local.guard.js.map +1 -1
  731. package/server/authentication/guards/auth-local.guard.spec.js +9 -13
  732. package/server/authentication/guards/auth-local.guard.spec.js.map +1 -1
  733. package/server/authentication/guards/auth-local.strategy.js +6 -10
  734. package/server/authentication/guards/auth-local.strategy.js.map +1 -1
  735. package/server/authentication/guards/auth-token-access.guard.js +1 -5
  736. package/server/authentication/guards/auth-token-access.guard.js.map +1 -1
  737. package/server/authentication/guards/auth-token-access.guard.spec.js +3 -7
  738. package/server/authentication/guards/auth-token-access.guard.spec.js.map +1 -1
  739. package/server/authentication/guards/auth-token-access.strategy.js +3 -7
  740. package/server/authentication/guards/auth-token-access.strategy.js.map +1 -1
  741. package/server/authentication/guards/auth-token-refresh.guard.js +1 -5
  742. package/server/authentication/guards/auth-token-refresh.guard.js.map +1 -1
  743. package/server/authentication/guards/auth-token-refresh.guard.spec.js +3 -7
  744. package/server/authentication/guards/auth-token-refresh.guard.spec.js.map +1 -1
  745. package/server/authentication/guards/auth-token-refresh.strategy.js +3 -7
  746. package/server/authentication/guards/auth-token-refresh.strategy.js.map +1 -1
  747. package/server/authentication/guards/implementations/http-basic.strategy.js +1 -5
  748. package/server/authentication/guards/implementations/http-basic.strategy.js.map +1 -1
  749. package/server/authentication/guards/implementations/http-digest.strategy.js +1 -5
  750. package/server/authentication/guards/implementations/http-digest.strategy.js.map +1 -1
  751. package/server/authentication/interfaces/auth-request.interface.js +1 -5
  752. package/server/authentication/interfaces/auth-request.interface.js.map +1 -1
  753. package/server/authentication/interfaces/jwt-payload.interface.js +1 -5
  754. package/server/authentication/interfaces/jwt-payload.interface.js.map +1 -1
  755. package/server/authentication/interfaces/token.interface.js +1 -5
  756. package/server/authentication/interfaces/token.interface.js.map +1 -1
  757. package/server/authentication/providers/auth-providers.constants.js +18 -0
  758. package/server/authentication/providers/auth-providers.constants.js.map +1 -0
  759. package/server/authentication/providers/auth-providers.models.js +14 -0
  760. package/server/authentication/providers/auth-providers.models.js.map +1 -0
  761. package/server/authentication/providers/auth-providers.utils.js +42 -0
  762. package/server/authentication/providers/auth-providers.utils.js.map +1 -0
  763. package/server/authentication/providers/ldap/auth-ldap.config.js +143 -0
  764. package/server/authentication/providers/ldap/auth-ldap.config.js.map +1 -0
  765. package/server/authentication/{constants/auth-ldap.js → providers/ldap/auth-ldap.constants.js} +12 -6
  766. package/server/authentication/providers/ldap/auth-ldap.constants.js.map +1 -0
  767. package/server/authentication/providers/ldap/auth-provider-ldap.service.js +506 -0
  768. package/server/authentication/providers/ldap/auth-provider-ldap.service.js.map +1 -0
  769. package/server/authentication/providers/ldap/auth-provider-ldap.service.spec.js +674 -0
  770. package/server/authentication/providers/ldap/auth-provider-ldap.service.spec.js.map +1 -0
  771. package/server/authentication/{services/auth-methods/auth-method-database.service.js → providers/mysql/auth-provider-mysql.service.js} +16 -14
  772. package/server/authentication/providers/mysql/auth-provider-mysql.service.js.map +1 -0
  773. package/server/authentication/{services/auth-methods/auth-method-database.service.spec.js → providers/mysql/auth-provider-mysql.service.spec.js} +15 -19
  774. package/server/authentication/providers/mysql/auth-provider-mysql.service.spec.js.map +1 -0
  775. package/server/authentication/providers/oidc/auth-oidc-desktop.constants.js +30 -0
  776. package/server/authentication/providers/oidc/auth-oidc-desktop.constants.js.map +1 -0
  777. package/server/authentication/providers/oidc/auth-oidc.config.js +149 -0
  778. package/server/authentication/providers/oidc/auth-oidc.config.js.map +1 -0
  779. package/server/authentication/providers/oidc/auth-oidc.constants.js +39 -0
  780. package/server/authentication/providers/oidc/auth-oidc.constants.js.map +1 -0
  781. package/server/authentication/providers/oidc/auth-oidc.controller.js +83 -0
  782. package/server/authentication/providers/oidc/auth-oidc.controller.js.map +1 -0
  783. package/server/authentication/providers/oidc/auth-oidc.interfaces.js +6 -0
  784. package/server/authentication/providers/oidc/auth-oidc.interfaces.js.map +1 -0
  785. package/server/authentication/providers/oidc/auth-provider-oidc.module.js +36 -0
  786. package/server/authentication/providers/oidc/auth-provider-oidc.module.js.map +1 -0
  787. package/server/authentication/providers/oidc/auth-provider-oidc.service.js +373 -0
  788. package/server/authentication/providers/oidc/auth-provider-oidc.service.js.map +1 -0
  789. package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js +270 -0
  790. package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js.map +1 -0
  791. package/server/authentication/{services/auth-methods/auth-method-two-fa.service.js → providers/two-fa/auth-provider-two-fa.service.js} +56 -38
  792. package/server/authentication/providers/two-fa/auth-provider-two-fa.service.js.map +1 -0
  793. package/server/authentication/{services/auth-methods/auth-method-two-fa.service.spec.js → providers/two-fa/auth-provider-two-fa.service.spec.js} +6 -10
  794. package/server/authentication/providers/two-fa/auth-provider-two-fa.service.spec.js.map +1 -0
  795. package/server/authentication/{guards → providers/two-fa}/auth-two-fa-guard.js +10 -14
  796. package/server/authentication/providers/two-fa/auth-two-fa-guard.js.map +1 -0
  797. package/server/authentication/providers/two-fa/auth-two-fa.config.js +57 -0
  798. package/server/authentication/providers/two-fa/auth-two-fa.config.js.map +1 -0
  799. package/server/authentication/{dto/two-fa-verify.dto.js → providers/two-fa/auth-two-fa.dtos.js} +8 -6
  800. package/server/authentication/providers/two-fa/auth-two-fa.dtos.js.map +1 -0
  801. package/server/authentication/providers/two-fa/auth-two-fa.interfaces.js +6 -0
  802. package/server/authentication/providers/two-fa/auth-two-fa.interfaces.js.map +1 -0
  803. package/server/authentication/utils/crypt-secret.js +1 -5
  804. package/server/authentication/utils/crypt-secret.js.map +1 -1
  805. package/server/common/constants.js +1 -5
  806. package/server/common/constants.js.map +1 -1
  807. package/server/common/decorators.js +1 -5
  808. package/server/common/decorators.js.map +1 -1
  809. package/server/common/functions.js +25 -9
  810. package/server/common/functions.js.map +1 -1
  811. package/server/common/i18n.js +1 -5
  812. package/server/common/i18n.js.map +1 -1
  813. package/server/common/image.js +1 -5
  814. package/server/common/image.js.map +1 -1
  815. package/server/common/interfaces.js +1 -5
  816. package/server/common/interfaces.js.map +1 -1
  817. package/server/common/qrcode.js +1 -5
  818. package/server/common/qrcode.js.map +1 -1
  819. package/server/common/shared.js +6 -6
  820. package/server/common/shared.js.map +1 -1
  821. package/server/configuration/config.constants.js +1 -5
  822. package/server/configuration/config.constants.js.map +1 -1
  823. package/server/configuration/config.environment.js +2 -6
  824. package/server/configuration/config.environment.js.map +1 -1
  825. package/server/configuration/config.interfaces.js +1 -5
  826. package/server/configuration/config.interfaces.js.map +1 -1
  827. package/server/configuration/config.loader.js +1 -5
  828. package/server/configuration/config.loader.js.map +1 -1
  829. package/server/configuration/config.logger.js +4 -8
  830. package/server/configuration/config.logger.js.map +1 -1
  831. package/server/configuration/config.validation.js +7 -5
  832. package/server/configuration/config.validation.js.map +1 -1
  833. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js +9 -7
  834. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js.map +1 -1
  835. package/server/infrastructure/cache/adapters/redis-cache.adapter.js +1 -5
  836. package/server/infrastructure/cache/adapters/redis-cache.adapter.js.map +1 -1
  837. package/server/infrastructure/cache/cache.config.js +1 -5
  838. package/server/infrastructure/cache/cache.config.js.map +1 -1
  839. package/server/infrastructure/cache/cache.decorator.js +9 -7
  840. package/server/infrastructure/cache/cache.decorator.js.map +1 -1
  841. package/server/infrastructure/cache/cache.e2e-spec.js +1 -5
  842. package/server/infrastructure/cache/cache.e2e-spec.js.map +1 -1
  843. package/server/infrastructure/cache/cache.module.js +1 -5
  844. package/server/infrastructure/cache/cache.module.js.map +1 -1
  845. package/server/infrastructure/cache/schemas/mysql-cache.interface.js +1 -5
  846. package/server/infrastructure/cache/schemas/mysql-cache.interface.js.map +1 -1
  847. package/server/infrastructure/cache/schemas/mysql-cache.schema.js +1 -5
  848. package/server/infrastructure/cache/schemas/mysql-cache.schema.js.map +1 -1
  849. package/server/infrastructure/cache/services/cache.service.js +1 -5
  850. package/server/infrastructure/cache/services/cache.service.js.map +1 -1
  851. package/server/infrastructure/context/context.module.js +1 -5
  852. package/server/infrastructure/context/context.module.js.map +1 -1
  853. package/server/infrastructure/context/interceptors/context.interceptor.js +1 -5
  854. package/server/infrastructure/context/interceptors/context.interceptor.js.map +1 -1
  855. package/server/infrastructure/context/interceptors/context.interceptor.spec.js +2 -6
  856. package/server/infrastructure/context/interceptors/context.interceptor.spec.js.map +1 -1
  857. package/server/infrastructure/context/interfaces/context-store.interface.js +1 -5
  858. package/server/infrastructure/context/interfaces/context-store.interface.js.map +1 -1
  859. package/server/infrastructure/context/services/context-manager.service.js +1 -5
  860. package/server/infrastructure/context/services/context-manager.service.js.map +1 -1
  861. package/server/infrastructure/context/services/context-manager.service.spec.js +1 -5
  862. package/server/infrastructure/context/services/context-manager.service.spec.js.map +1 -1
  863. package/server/infrastructure/database/columns.js +1 -5
  864. package/server/infrastructure/database/columns.js.map +1 -1
  865. package/server/infrastructure/database/configuration.js +1 -5
  866. package/server/infrastructure/database/configuration.js.map +1 -1
  867. package/server/infrastructure/database/constants.js +2 -6
  868. package/server/infrastructure/database/constants.js.map +1 -1
  869. package/server/infrastructure/database/database.config.js +1 -5
  870. package/server/infrastructure/database/database.config.js.map +1 -1
  871. package/server/infrastructure/database/database.logger.js +1 -5
  872. package/server/infrastructure/database/database.logger.js.map +1 -1
  873. package/server/infrastructure/database/database.module.js +1 -5
  874. package/server/infrastructure/database/database.module.js.map +1 -1
  875. package/server/infrastructure/database/interfaces/database.interface.js +1 -5
  876. package/server/infrastructure/database/interfaces/database.interface.js.map +1 -1
  877. package/server/infrastructure/database/schema.js +1 -5
  878. package/server/infrastructure/database/schema.js.map +1 -1
  879. package/server/infrastructure/database/scripts/create-user.js +1 -5
  880. package/server/infrastructure/database/scripts/create-user.js.map +1 -1
  881. package/server/infrastructure/database/scripts/db.js +1 -5
  882. package/server/infrastructure/database/scripts/db.js.map +1 -1
  883. package/server/infrastructure/database/scripts/seed/main.js +1 -5
  884. package/server/infrastructure/database/scripts/seed/main.js.map +1 -1
  885. package/server/infrastructure/database/scripts/seed/usersgroups.js +1 -5
  886. package/server/infrastructure/database/scripts/seed/usersgroups.js.map +1 -1
  887. package/server/infrastructure/database/utils.js +1 -5
  888. package/server/infrastructure/database/utils.js.map +1 -1
  889. package/server/infrastructure/mailer/interfaces/mail.interface.js +1 -5
  890. package/server/infrastructure/mailer/interfaces/mail.interface.js.map +1 -1
  891. package/server/infrastructure/mailer/mailer.config.js +1 -5
  892. package/server/infrastructure/mailer/mailer.config.js.map +1 -1
  893. package/server/infrastructure/mailer/mailer.module.js +1 -5
  894. package/server/infrastructure/mailer/mailer.module.js.map +1 -1
  895. package/server/infrastructure/mailer/mailer.service.js +1 -5
  896. package/server/infrastructure/mailer/mailer.service.js.map +1 -1
  897. package/server/infrastructure/mailer/mailer.service.spec.js +2 -6
  898. package/server/infrastructure/mailer/mailer.service.spec.js.map +1 -1
  899. package/server/infrastructure/scheduler/scheduler.constants.js +1 -5
  900. package/server/infrastructure/scheduler/scheduler.constants.js.map +1 -1
  901. package/server/infrastructure/scheduler/scheduler.module.js +1 -5
  902. package/server/infrastructure/scheduler/scheduler.module.js.map +1 -1
  903. package/server/infrastructure/websocket/adapters/cluster.adapter.js +1 -5
  904. package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -1
  905. package/server/infrastructure/websocket/adapters/redis.adapter.js +1 -5
  906. package/server/infrastructure/websocket/adapters/redis.adapter.js.map +1 -1
  907. package/server/infrastructure/websocket/adapters/web-socket.adapter.js +1 -5
  908. package/server/infrastructure/websocket/adapters/web-socket.adapter.js.map +1 -1
  909. package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js +1 -5
  910. package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js.map +1 -1
  911. package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js +1 -5
  912. package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js.map +1 -1
  913. package/server/infrastructure/websocket/utils.js +1 -5
  914. package/server/infrastructure/websocket/utils.js.map +1 -1
  915. package/server/infrastructure/websocket/web-socket.config.js +1 -5
  916. package/server/infrastructure/websocket/web-socket.config.js.map +1 -1
  917. package/server/main.js +5 -0
  918. package/server/main.js.map +1 -1
  919. package/static/assets/pdfjs/build/pdf.mjs +724 -745
  920. package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
  921. package/static/assets/pdfjs/build/pdf.sandbox.mjs +2 -2
  922. package/static/assets/pdfjs/build/pdf.worker.mjs +706 -193
  923. package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
  924. package/static/assets/pdfjs/version +1 -1
  925. package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +5 -5
  926. package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +1 -0
  927. package/static/assets/pdfjs/web/locale/fur/viewer.ftl +5 -0
  928. package/static/assets/pdfjs/web/locale/kk/viewer.ftl +28 -0
  929. package/static/assets/pdfjs/web/locale/ml/viewer.ftl +4 -0
  930. package/static/assets/pdfjs/web/locale/ru/viewer.ftl +3 -3
  931. package/static/assets/pdfjs/web/viewer.css +207 -65
  932. package/static/assets/pdfjs/web/viewer.html +11 -10
  933. package/static/assets/pdfjs/web/viewer.mjs +850 -270
  934. package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
  935. package/static/assets/pdfjs/web/wasm/LICENSE_JBIG2 +196 -0
  936. package/static/assets/pdfjs/web/wasm/LICENSE_PDFJS_JBIG2 +13 -0
  937. package/static/assets/pdfjs/web/wasm/jbig2.wasm +0 -0
  938. package/static/chunk-22TZP6HW.js +1 -0
  939. package/static/{chunk-G7TLKY5X.js → chunk-27ATUHBH.js} +1 -1
  940. package/static/{chunk-CQOQXVYG.js → chunk-2CKLZ3FM.js} +1 -1
  941. package/static/{chunk-FVFOX6OP.js → chunk-2QZPX7LO.js} +1 -1
  942. package/static/{chunk-32AVRWC3.js → chunk-2R6IBBPZ.js} +1 -1
  943. package/static/{chunk-76JDXKD7.js → chunk-4FIGEBNL.js} +1 -1
  944. package/static/{chunk-ACCGBDUZ.js → chunk-4P3JABAP.js} +4 -4
  945. package/static/chunk-5CZOSAMZ.js +1 -0
  946. package/static/{chunk-2PDTP6N4.js → chunk-677WUBCT.js} +1 -1
  947. package/static/{chunk-K5VO5XTG.js → chunk-74CAHBFM.js} +1 -1
  948. package/static/{chunk-WTWGBCFO.js → chunk-7GWW6MJO.js} +1 -1
  949. package/static/{chunk-JXZOYX4N.js → chunk-A4UGPSWX.js} +1 -1
  950. package/static/{chunk-44D7RWET.js → chunk-AHO37FKW.js} +1 -1
  951. package/static/{chunk-WB2DECOA.js → chunk-AQCXMKP3.js} +1 -1
  952. package/static/chunk-B6PDYCRO.js +3 -0
  953. package/static/{chunk-JVGN5V5E.js → chunk-CU76ATCF.js} +1 -1
  954. package/static/{chunk-Q5K4ZUHK.js → chunk-CWYHOPOP.js} +1 -1
  955. package/static/{chunk-IOX3ANJR.js → chunk-E5WI5725.js} +1 -1
  956. package/static/{chunk-NUG54Y65.js → chunk-FC5HTKVM.js} +1 -1
  957. package/static/{chunk-LRK6RNPR.js → chunk-FOSM7EYI.js} +1 -1
  958. package/static/{chunk-B4UP2EQM.js → chunk-GAZO25PI.js} +1 -1
  959. package/static/{chunk-3WBCGTYW.js → chunk-GB7ABR5N.js} +1 -1
  960. package/static/{chunk-XFZ37WVK.js → chunk-GEHFKZQ5.js} +1 -1
  961. package/static/{chunk-4CQLN5HL.js → chunk-GQFMWVFD.js} +1 -1
  962. package/static/{chunk-YBEH442D.js → chunk-GVNTC564.js} +1 -1
  963. package/static/{chunk-WO6GBHBZ.js → chunk-HGL3NYP2.js} +2 -2
  964. package/static/{chunk-IAWRRL6J.js → chunk-HLIWPWRA.js} +1 -1
  965. package/static/{chunk-6LHJBXUE.js → chunk-HNYB3M4S.js} +1 -1
  966. package/static/{chunk-5WTIUYFF.js → chunk-HUXAUQMN.js} +1 -1
  967. package/static/{chunk-VBH3Y2M5.js → chunk-I2XA6PPK.js} +1 -1
  968. package/static/{chunk-I3XI72AV.js → chunk-ISV3BO6R.js} +1 -1
  969. package/static/{chunk-P7X53PEP.js → chunk-JV3AGU5B.js} +1 -1
  970. package/static/{chunk-ZFAXICUH.js → chunk-K25E7YGG.js} +1 -1
  971. package/static/{chunk-CAD3RHAY.js → chunk-K46PUTZB.js} +1 -1
  972. package/static/{chunk-GYFLVCFN.js → chunk-KERFLJ56.js} +1 -7
  973. package/static/{chunk-WSTGWBVW.js → chunk-KJD3KFF3.js} +1 -1
  974. package/static/{chunk-R4P4NBUL.js → chunk-KPKSI23S.js} +1 -1
  975. package/static/{chunk-M7IFVC5D.js → chunk-KZS7CTNR.js} +1 -1
  976. package/static/{chunk-P2IJCGWD.js → chunk-L5IHUVXL.js} +1 -1
  977. package/static/{chunk-DXESTGOH.js → chunk-L7RRX2M3.js} +1 -1
  978. package/static/{chunk-WE3ISL7O.js → chunk-LGWJ2WKU.js} +1 -1
  979. package/static/{chunk-OKI3N5AI.js → chunk-MLC7JK2H.js} +2 -2
  980. package/static/{chunk-NG7QWUFM.js → chunk-MOHNYW2A.js} +1 -1
  981. package/static/{chunk-SQYWQUL4.js → chunk-NCDUOVMW.js} +1 -1
  982. package/static/chunk-NGUAJIGI.js +1 -0
  983. package/static/{chunk-OYPJUVD6.js → chunk-NIPP6JDI.js} +1 -1
  984. package/static/{chunk-Y433XOAJ.js → chunk-NMTBMHUL.js} +1 -1
  985. package/static/chunk-O4XXMZFX.js +4 -0
  986. package/static/{chunk-IOP3ON2H.js → chunk-OANZITPM.js} +1 -1
  987. package/static/{chunk-WJFKUJJX.js → chunk-OGE4SAHU.js} +1 -1
  988. package/static/{chunk-7EHP6HO3.js → chunk-OI3ME22C.js} +1 -1
  989. package/static/{chunk-D4XDSS6P.js → chunk-Q3EGCMF5.js} +1 -1
  990. package/static/{chunk-TQBCGNFG.js → chunk-QF2NSHZA.js} +1 -1
  991. package/static/{chunk-RBBMH2FM.js → chunk-QKN6LAAA.js} +1 -1
  992. package/static/{chunk-J45SD6RC.js → chunk-QRFESU5O.js} +2 -2
  993. package/static/chunk-QVRVFYJH.js +1 -0
  994. package/static/{chunk-BAHNSFET.js → chunk-RFJIPIOK.js} +1 -1
  995. package/static/{chunk-IZ7TCHUW.js → chunk-RLL634K4.js} +1 -1
  996. package/static/{chunk-MOWL3ILT.js → chunk-RS2OFKWP.js} +1 -1
  997. package/static/{chunk-WM56LPJ3.js → chunk-RWAAC3A4.js} +1 -1
  998. package/static/{chunk-F3GMI6OL.js → chunk-S5Y64DDS.js} +1 -1
  999. package/static/{chunk-VNNLMUK7.js → chunk-SLG5KDU6.js} +1 -1
  1000. package/static/chunk-TJ4CVFEL.js +1 -0
  1001. package/static/{chunk-SAN35XTD.js → chunk-TWCGKSYE.js} +1 -1
  1002. package/static/{chunk-EUKVDBBK.js → chunk-UMDRE4S7.js} +1 -1
  1003. package/static/{chunk-YKCUUBZP.js → chunk-VRIOLRYR.js} +4 -4
  1004. package/static/chunk-VS4O2XDP.js +1 -0
  1005. package/static/{chunk-2MRTBCSV.js → chunk-VSBFNFOM.js} +1 -1
  1006. package/static/{chunk-CTPKDDVI.js → chunk-WN4WXCVK.js} +1 -1
  1007. package/static/{chunk-2AA3WMW5.js → chunk-WX7RXW7K.js} +1 -1
  1008. package/static/{chunk-J2BUPRCZ.js → chunk-XC4POKR3.js} +2 -2
  1009. package/static/{chunk-AXLDYLIO.js → chunk-Y4AUYQTG.js} +1 -1
  1010. package/static/{chunk-RPHWIW7S.js → chunk-YMIXHRJQ.js} +1 -7
  1011. package/static/{chunk-AFNUBQMD.js → chunk-ZUNKFAKP.js} +1 -1
  1012. package/static/index.html +3 -3
  1013. package/static/main-QN4UCOC5.js +5 -0
  1014. package/static/{styles-PD6764CP.css → styles-46GLIE7Y.css} +1 -1
  1015. package/server/authentication/constants/auth-ldap.js.map +0 -1
  1016. package/server/authentication/dto/two-fa-verify.dto.js.map +0 -1
  1017. package/server/authentication/guards/auth-two-fa-guard.js.map +0 -1
  1018. package/server/authentication/interfaces/two-fa-setup.interface.js +0 -10
  1019. package/server/authentication/interfaces/two-fa-setup.interface.js.map +0 -1
  1020. package/server/authentication/models/auth-method.js +0 -18
  1021. package/server/authentication/models/auth-method.js.map +0 -1
  1022. package/server/authentication/services/auth-manager.service.js.map +0 -1
  1023. package/server/authentication/services/auth-manager.service.spec.js.map +0 -1
  1024. package/server/authentication/services/auth-methods/auth-method-database.service.js.map +0 -1
  1025. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +0 -1
  1026. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +0 -326
  1027. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +0 -1
  1028. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +0 -534
  1029. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +0 -1
  1030. package/server/authentication/services/auth-methods/auth-method-two-fa.service.js.map +0 -1
  1031. package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js.map +0 -1
  1032. package/static/chunk-3I6NPM62.js +0 -1
  1033. package/static/chunk-GCPX3EFC.js +0 -1
  1034. package/static/chunk-KBUIDMCK.js +0 -1
  1035. package/static/chunk-KY6MNZLC.js +0 -1
  1036. package/static/chunk-MPWD4VMY.js +0 -1
  1037. package/static/chunk-QQAF3MLL.js +0 -1
  1038. package/static/chunk-VHZKPUWE.js +0 -4
  1039. package/static/chunk-YWLMFOB4.js +0 -3
  1040. package/static/main-ZXEMCBMI.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/shares/services/shares-manager.service.spec.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { HttpException, HttpStatus } from '@nestjs/common'\nimport { Test, TestingModule } from '@nestjs/testing'\nimport * as commonFunctions from '../../../common/functions'\nimport { intersectPermissions } from '../../../common/shared'\nimport { ContextManager } from '../../../infrastructure/context/services/context-manager.service'\nimport { DB_TOKEN_PROVIDER } from '../../../infrastructure/database/constants'\nimport { LINK_TYPE } from '../../links/constants/links'\nimport { LinksQueries } from '../../links/services/links-queries.service'\nimport { NotificationsManager } from '../../notifications/services/notifications-manager.service'\nimport { SpacesQueries } from '../../spaces/services/spaces-queries.service'\nimport * as permissionsUtils from '../../spaces/utils/permissions'\nimport { GUEST_PERMISSION } from '../../users/constants/user'\nimport { UsersQueries } from '../../users/services/users-queries.service'\nimport { SHARE_ALL_OPERATIONS } from '../constants/shares'\nimport { SharesManager } from './shares-manager.service'\nimport { SharesQueries } from './shares-queries.service'\n\n// Mock classes and utility modules used by SharesManager\njest.mock('../../spaces/models/space-env.model', () => ({\n SpaceEnv: jest.fn().mockImplementation(() => ({\n setPermissions: jest.fn(),\n envPermissions: 'ENV_PERMS'\n }))\n}))\n\njest.mock('../../spaces/utils/permissions', () => ({\n havePermission: jest.fn(),\n haveSpacePermission: jest.fn(),\n removePermissions: jest.fn(() => 'trimmed')\n}))\n\njest.mock('../../../common/functions', () => {\n const actual = jest.requireActual('../../../common/functions')\n return {\n ...actual,\n generateShortUUID: jest.fn(),\n hashPassword: jest.fn()\n }\n})\n\njest.mock('../../../common/shared', () => {\n const actual = jest.requireActual('../../../common/shared')\n return {\n ...actual,\n intersectPermissions: jest.fn()\n }\n})\n\ndescribe(SharesManager.name, () => {\n let service: SharesManager\n\n // Mocks\n const contextManagerMock = {\n headerOriginUrl: jest.fn()\n }\n\n const notificationsManagerMock = {\n create: jest.fn().mockResolvedValue(undefined),\n sendEmailNotification: jest.fn().mockResolvedValue(undefined)\n }\n\n const spacesQueriesMock = {\n permissions: jest.fn()\n }\n\n const usersQueriesMock = {\n createUserOrGuest: jest.fn(),\n deleteGuestLink: jest.fn(),\n usersWhitelist: jest.fn().mockResolvedValue([]),\n groupsWhitelist: jest.fn().mockResolvedValue([]),\n allUserIdsFromGroupsAndSubGroups: jest.fn().mockResolvedValue([])\n }\n\n const linksQueriesMock = {\n isUniqueUUID: jest.fn(),\n isReservedUUID: jest.fn(),\n allLinksFromSpaceOrShare: jest.fn(),\n createLinkToSpaceOrShare: jest.fn(),\n updateLinkFromSpaceOrShare: jest.fn(),\n linkFromShare: jest.fn(),\n linkFromSpace: jest.fn()\n }\n\n const sharesQueriesMock = {\n permissions: jest.fn(),\n listShareLinks: jest.fn(),\n getShareWithMembers: jest.fn(),\n createShare: jest.fn(),\n updateShare: jest.fn(),\n selectShares: jest.fn(),\n deleteShare: jest.fn(),\n updateMember: jest.fn(),\n updateMembers: jest.fn(),\n shareExistsForOwner: jest.fn(),\n childExistsForShareOwner: jest.fn(),\n clearCachePermissions: jest.fn().mockResolvedValue(true)\n }\n\n const user = { id: 1, isAdmin: false } as any\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n { provide: DB_TOKEN_PROVIDER, useValue: {} },\n { provide: ContextManager, useValue: contextManagerMock },\n { provide: NotificationsManager, useValue: notificationsManagerMock },\n { provide: SpacesQueries, useValue: spacesQueriesMock },\n { provide: UsersQueries, useValue: usersQueriesMock },\n { provide: LinksQueries, useValue: linksQueriesMock },\n { provide: SharesQueries, useValue: sharesQueriesMock },\n SharesManager\n ]\n }).compile()\n\n module.useLogger(['fatal'])\n service = module.get<SharesManager>(SharesManager)\n })\n\n beforeEach(() => {\n jest.clearAllMocks()\n })\n\n it('should be defined', () => {\n expect(service).toBeDefined()\n })\n\n describe('setAllowedPermissions', () => {\n it('sets all operations when the user is the file owner (personal space case)', async () => {\n const share: any = { file: { ownerId: user.id, permissions: '' } }\n await service.setAllowedPermissions(user, share)\n expect(share.file.permissions).toBe(SHARE_ALL_OPERATIONS)\n })\n\n it('uses space permissions when file has a space alias', async () => {\n spacesQueriesMock.permissions.mockResolvedValueOnce({ any: 'thing' })\n const share: any = {\n file: { ownerId: 999, space: { alias: 'space-1', root: { alias: 'root' } }, permissions: undefined }\n }\n await service.setAllowedPermissions(user, share)\n expect(spacesQueriesMock.permissions).toHaveBeenCalledWith(user.id, 'space-1', 'root')\n expect(share.file.ownerId).toBeNull()\n expect(share.file.permissions).toBe('ENV_PERMS')\n })\n\n it('uses parent share permissions when parent alias is present', async () => {\n sharesQueriesMock.permissions.mockResolvedValueOnce({ permissions: 'PARENT_PERMS' })\n const share: any = {\n ownerId: 77,\n parent: { alias: 'parent-share' },\n file: { permissions: undefined }\n }\n await service.setAllowedPermissions(user, share)\n expect(sharesQueriesMock.permissions).toHaveBeenCalledWith(user.id, 'parent-share', +user.isAdmin)\n expect(share.file.permissions).toBe('PARENT_PERMS')\n })\n\n it('throws Bad Request when missing required information', async () => {\n const share: any = { file: {}, parent: {} }\n await expect(service.setAllowedPermissions(user, share)).rejects.toEqual(new HttpException('Missing information', HttpStatus.BAD_REQUEST))\n })\n })\n\n describe('getShareWithMembers', () => {\n it('returns the share and calls setAllowedPermissions', async () => {\n const share: any = { id: 10, file: {} }\n sharesQueriesMock.getShareWithMembers.mockResolvedValueOnce(share)\n const spy = jest.spyOn(service, 'setAllowedPermissions').mockResolvedValueOnce(void 0)\n\n const result = await service.getShareWithMembers(user, 10, true)\n\n expect(result).toBe(share)\n expect(spy).toHaveBeenCalledWith(user, share, true)\n })\n\n it('throws Forbidden when share is not found or not authorized', async () => {\n sharesQueriesMock.getShareWithMembers.mockResolvedValueOnce(null)\n await expect(service.getShareWithMembers(user, 99, false)).rejects.toEqual(new HttpException('Not authorized', HttpStatus.FORBIDDEN))\n })\n })\n\n describe('generateLinkUUID', () => {\n it('loops until a unique UUID is found', async () => {\n ;(commonFunctions.generateShortUUID as jest.Mock).mockReturnValueOnce('aaa').mockReturnValueOnce('bbb')\n\n linksQueriesMock.isUniqueUUID.mockResolvedValueOnce(false).mockResolvedValueOnce(true)\n\n const { uuid } = await service.generateLinkUUID(user.id)\n\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenCalledTimes(2)\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenNthCalledWith(1, user.id, 'aaa')\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenNthCalledWith(2, user.id, 'bbb')\n expect(uuid).toBe('bbb')\n })\n })\n\n describe('getShareLink', () => {\n it('returns the share link and trims unsupported permissions', async () => {\n const shareLink: any = { id: 5, file: { permissions: 'ORIG' } }\n sharesQueriesMock.listShareLinks.mockResolvedValueOnce(shareLink)\n const spy = jest.spyOn(service, 'setAllowedPermissions').mockResolvedValueOnce(void 0)\n\n const result = await service.getShareLink(user, 5)\n\n expect(spy).toHaveBeenCalledWith(user, shareLink)\n expect(result).toBe(shareLink)\n expect(result.file.permissions).toBe('trimmed')\n expect((permissionsUtils.removePermissions as jest.Mock).mock.calls[0][0]).toBe('ORIG')\n })\n\n it('throws Forbidden when link is not found', async () => {\n sharesQueriesMock.listShareLinks.mockResolvedValueOnce(null)\n await expect(service.getShareLink(user, 123)).rejects.toEqual(new HttpException('Not authorized', HttpStatus.FORBIDDEN))\n })\n })\n\n describe('updateLinkFromSpaceOrShare (from API)', () => {\n it('intersects permissions and returns updated link object', async () => {\n const baseLink: any = {\n id: 42,\n name: 'old',\n email: 'x@x',\n requireAuth: false,\n limitAccess: null,\n expiresAt: null,\n permissions: 'OLD',\n shareName: 'OldShare',\n shareDescription: 'OldDesc'\n }\n jest.spyOn(service, 'getLinkFromSpaceOrShare').mockResolvedValueOnce(baseLink)\n jest.spyOn(service, 'getShareLink').mockResolvedValueOnce({ file: { permissions: 'SHARE_PERMS' } } as any)\n ;(intersectPermissions as jest.Mock).mockReturnValue('INTERSECTED')\n linksQueriesMock.updateLinkFromSpaceOrShare.mockResolvedValueOnce(undefined)\n\n const dto: any = {\n permissions: 'NEW_PERMS',\n language: 'fr',\n isActive: false\n }\n\n const result = await service.updateLinkFromSpaceOrShare(user, 7, 55, 1 as any, dto, true)\n\n expect(linksQueriesMock.updateLinkFromSpaceOrShare).toHaveBeenCalled()\n expect(result.permissions).toBe('INTERSECTED')\n expect(result.language).toBe('fr')\n expect(result.isActive).toBe(false)\n })\n })\n\n describe('createGuestLink', () => {\n it('creates guest link with hashed password and returns created user info', async () => {\n ;(commonFunctions.hashPassword as jest.Mock).mockResolvedValue('HASHED')\n ;(commonFunctions.generateShortUUID as jest.Mock).mockReturnValue('RANDOMSEQ')\n usersQueriesMock.createUserOrGuest.mockResolvedValueOnce(99)\n\n const guest = await service.createGuestLink(GUEST_PERMISSION.SHARES, 'plaintext', 'en', true)\n\n expect(usersQueriesMock.createUserOrGuest).toHaveBeenCalled()\n expect(guest.id).toBe(99)\n expect(guest.password).toBe('HASHED')\n expect(guest.role).toBeDefined()\n expect(guest.permissions).toBe(GUEST_PERMISSION.SHARES)\n expect(guest.language).toBe('en')\n expect(guest.isActive).toBe(true)\n })\n\n it('generates a random password and defaults isActive when not provided', async () => {\n ;(commonFunctions.hashPassword as jest.Mock).mockResolvedValue('HASHED-RAND')\n ;(commonFunctions.generateShortUUID as jest.Mock).mockReturnValueOnce('RANDOMSEQ')\n usersQueriesMock.createUserOrGuest.mockResolvedValueOnce(123)\n\n const guest = await service.createGuestLink(GUEST_PERMISSION.SPACES)\n\n expect(commonFunctions.hashPassword).toHaveBeenCalled()\n expect(guest.id).toBe(123)\n expect(guest.isActive).toBe(true)\n expect(guest.language).toBeNull()\n })\n })\n\n describe('getLinkFromSpaceOrShare', () => {\n it('returns a link guest for SPACE type', async () => {\n const lg = { id: 1 }\n linksQueriesMock.linkFromSpace.mockResolvedValueOnce(lg)\n\n const res = await service.getLinkFromSpaceOrShare(user, 11, 22, LINK_TYPE.SPACE)\n\n expect(res).toBe(lg)\n expect(linksQueriesMock.linkFromSpace).toHaveBeenCalledWith(user.id, 11, 22)\n expect(linksQueriesMock.linkFromShare).not.toHaveBeenCalled()\n })\n\n it('returns a link guest for SHARE type', async () => {\n const lg = { id: 2 }\n linksQueriesMock.linkFromShare.mockResolvedValueOnce(lg)\n\n const res = await service.getLinkFromSpaceOrShare(user, 33, 44, LINK_TYPE.SHARE)\n\n expect(res).toBe(lg)\n expect(linksQueriesMock.linkFromShare).toHaveBeenCalledWith(user.id, 33, 44, +user.isAdmin)\n expect(linksQueriesMock.linkFromSpace).not.toHaveBeenCalled()\n })\n\n it('throws when link not found', async () => {\n linksQueriesMock.linkFromSpace.mockResolvedValueOnce(null)\n\n await expect(service.getLinkFromSpaceOrShare(user, 55, 66, LINK_TYPE.SPACE)).rejects.toEqual(\n new HttpException('Link not found', HttpStatus.NOT_FOUND)\n )\n })\n })\n\n describe('updateLinkFromSpaceOrShare (additional branches)', () => {\n it('returns null when no diff and not from API', async () => {\n const link: any = { id: 1, name: 'n', email: 'e', requireAuth: false, limitAccess: null, expiresAt: null }\n jest.spyOn(service, 'getLinkFromSpaceOrShare').mockResolvedValueOnce(link)\n\n const result = await service.updateLinkFromSpaceOrShare(user, 1, 2, LINK_TYPE.SHARE, {}, false)\n\n expect(result).toBeNull()\n expect(linksQueriesMock.updateLinkFromSpaceOrShare).not.toHaveBeenCalled()\n })\n\n it('hashes password and does not leak it when fromAPI is true', async () => {\n const link: any = { id: 1 }\n jest.spyOn(service, 'getLinkFromSpaceOrShare').mockResolvedValueOnce(link)\n ;(commonFunctions.hashPassword as jest.Mock).mockResolvedValueOnce('HASHED')\n ;(linksQueriesMock.updateLinkFromSpaceOrShare as jest.Mock).mockImplementation(async (_link: any, _spaceOrShareId: number, updateUser: any) => {\n // Assert at call time before the service deletes the password\n expect(updateUser).toMatchObject({ password: 'HASHED' })\n return\n })\n\n const result = await service.updateLinkFromSpaceOrShare(user, 1, 2, LINK_TYPE.SHARE, { password: 'secret' }, true)\n\n expect(linksQueriesMock.updateLinkFromSpaceOrShare).toHaveBeenCalled()\n // The returned link must not leak password\n expect(result).toBe(link)\n expect((result as any).password).toBeUndefined()\n })\n\n it('updates multiple link/user fields and ignores equal expiresAt', async () => {\n const base = {\n id: 9,\n name: 'a',\n email: 'b',\n requireAuth: false,\n limitAccess: null,\n expiresAt: { date: '2025-01-01' }\n }\n jest.spyOn(service, 'getLinkFromSpaceOrShare').mockResolvedValueOnce(base as any)\n linksQueriesMock.updateLinkFromSpaceOrShare.mockResolvedValueOnce(undefined)\n\n const dto = {\n name: 'a2',\n email: 'b2',\n requireAuth: true,\n limitAccess: 5,\n expiresAt: { date: '2025-01-01' } // equal, should be ignored\n }\n\n await service.updateLinkFromSpaceOrShare(user, 9, 99, LINK_TYPE.SHARE, dto as any, false)\n\n const [, , , updateLink] = (linksQueriesMock.updateLinkFromSpaceOrShare as jest.Mock).mock.calls[0].slice(0, 5)\n expect(updateLink).toMatchObject({\n name: 'a2',\n email: 'b2',\n requireAuth: true,\n limitAccess: 5\n })\n expect(updateLink.expiresAt).toBeUndefined()\n })\n })\n\n describe('setAllowedPermissions (additional branches)', () => {\n it('sets all operations when share has externalPath and user is admin', async () => {\n const admin = { id: 10, isAdmin: true } as any\n const share: any = { externalPath: '/ext', file: {} }\n await service.setAllowedPermissions(admin, share)\n expect(share.file.permissions).toBe(SHARE_ALL_OPERATIONS)\n })\n\n it('throws NOT_FOUND when space permissions are missing', async () => {\n spacesQueriesMock.permissions.mockResolvedValueOnce(null)\n const share: any = { file: { space: { alias: 'space-x', root: { alias: 'r' } } } }\n\n await expect(service.setAllowedPermissions(user, share)).rejects.toEqual(new HttpException('Space not found', HttpStatus.NOT_FOUND))\n })\n\n it('throws NOT_FOUND when parent share permissions are missing', async () => {\n sharesQueriesMock.permissions.mockResolvedValueOnce(null)\n const share: any = { ownerId: 42, parent: { alias: 'parent' }, file: {} }\n\n await expect(service.setAllowedPermissions(user, share)).rejects.toEqual(new HttpException('Share not found', HttpStatus.NOT_FOUND))\n })\n\n it('uses owner permissions when asAdmin is true', async () => {\n const asAdminUser = { id: 3, isAdmin: false } as any\n sharesQueriesMock.permissions.mockResolvedValueOnce({ permissions: 'ADMIN_PARENT' })\n const share: any = { ownerId: 77, parent: { alias: 'pa' }, file: {} }\n\n await service.setAllowedPermissions(asAdminUser, share, true)\n\n expect(sharesQueriesMock.permissions).toHaveBeenCalledWith(77, 'pa', +asAdminUser.isAdmin)\n expect(share.file.permissions).toBe('ADMIN_PARENT')\n })\n })\n\n describe('getShareLink (additional branch)', () => {\n it('does not trim permissions if file.permissions is falsy', async () => {\n const shareLink: any = { id: 7, file: {} }\n sharesQueriesMock.listShareLinks.mockResolvedValueOnce(shareLink)\n const spy = jest.spyOn(service, 'setAllowedPermissions').mockResolvedValueOnce(void 0)\n\n const res = await service.getShareLink(user, 7)\n\n expect(spy).toHaveBeenCalled()\n expect(res).toBe(shareLink)\n expect(permissionsUtils.removePermissions).not.toHaveBeenCalled()\n })\n })\n\n describe('deleteShare', () => {\n it('throws Forbidden when user is not admin and not owner', async () => {\n sharesQueriesMock.shareExistsForOwner.mockResolvedValueOnce(false)\n\n await expect(service.deleteShare({ id: 2, isAdmin: false } as any, 123)).rejects.toEqual(\n new HttpException('Not authorized', HttpStatus.FORBIDDEN)\n )\n })\n\n it('deletes links and removes shares when authorized (asAdmin)', async () => {\n const deleteLinksSpy = jest.spyOn(service, 'deleteAllLinkMembers').mockResolvedValue(void 0)\n const removeSpy = jest.spyOn<any, any>(service as any, 'removeShareFromOwners').mockResolvedValue(void 0)\n\n await service.deleteShare(user, 456, true)\n\n expect(deleteLinksSpy).toHaveBeenCalledWith(456, expect.anything())\n expect(removeSpy).toHaveBeenCalledWith(456, 'all', false, user.id)\n })\n })\n\n describe('child share wrappers', () => {\n it('getChildShare returns share link when isLink = true', async () => {\n sharesQueriesMock.childExistsForShareOwner.mockResolvedValueOnce(99)\n const getShareLinkSpy = jest.spyOn(service, 'getShareLink').mockResolvedValueOnce({ id: 99 } as any)\n\n const res = await service.getChildShare(user, 1, 99, true)\n expect(res).toEqual({ id: 99 })\n expect(getShareLinkSpy).toHaveBeenCalledWith(user, 99, true)\n })\n\n it('getChildShare returns child share when isLink = false', async () => {\n sharesQueriesMock.childExistsForShareOwner.mockResolvedValueOnce(100)\n const getShareSpy = jest.spyOn(service, 'getShareWithMembers').mockResolvedValueOnce({ id: 100 } as any)\n\n const res = await service.getChildShare(user, 1, 100, false)\n expect(res).toEqual({ id: 100 })\n expect(getShareSpy).toHaveBeenCalledWith(user, 100, true)\n })\n\n it('updateChildShare forwards update and deleteChildShare forwards delete', async () => {\n sharesQueriesMock.childExistsForShareOwner.mockResolvedValue(200)\n const updateSpy = jest.spyOn(service, 'updateShare').mockResolvedValueOnce({ id: 200 } as any)\n const deleteSpy = jest.spyOn(service, 'deleteShare').mockResolvedValueOnce(void 0)\n\n await service.updateChildShare(user, 1, 200, {} as any)\n expect(updateSpy).toHaveBeenCalledWith(user, 200, {} as any, true)\n\n await service.deleteChildShare(user, 1, 200)\n expect(deleteSpy).toHaveBeenCalledWith(user, 200, true)\n })\n\n it('throws Forbidden when not allowed to manage child share', async () => {\n sharesQueriesMock.childExistsForShareOwner.mockResolvedValueOnce(null)\n await expect(service.getChildShare(user, 1, 2, false)).rejects.toEqual(new HttpException('Not authorized', HttpStatus.FORBIDDEN))\n })\n })\n\n describe('createOrUpdateLinksAsMembers', () => {\n it('creates new links for id < 0 and notifies guest', async () => {\n const createLinkSpy = jest.spyOn<any, any>(service as any, 'createLinkFromSpaceOrShare').mockResolvedValue(void 0)\n const notifySpy = jest.spyOn<any, any>(service as any, 'notifyGuestLink').mockResolvedValue(void 0)\n\n const links = [{ id: -1, linkSettings: { uuid: 'u', email: 'e', permissions: 'p' }, permissions: 'p' }] as any\n\n const res = await service.createOrUpdateLinksAsMembers(user, { id: 1, name: 'S' } as any, LINK_TYPE.SHARE, links)\n\n expect(res).toEqual([])\n expect(createLinkSpy).toHaveBeenCalled()\n expect(notifySpy).toHaveBeenCalled()\n })\n\n it('updates modified links and returns them along with unmodified ones', async () => {\n const updateLinkSpy = jest.spyOn(service, 'updateLinkFromSpaceOrShare').mockResolvedValue(void 0)\n\n const members = await service.createOrUpdateLinksAsMembers(user, { id: 1, name: 'S' } as any, LINK_TYPE.SHARE, [\n { id: 2, linkId: 2, permissions: 'p', linkSettings: { name: 'new' } },\n { id: 3, linkId: 3, permissions: 'q' } // unmodified\n ] as any)\n\n expect(updateLinkSpy).toHaveBeenCalledWith(user, 2, 1, LINK_TYPE.SHARE, { name: 'new' })\n expect(members).toHaveLength(2)\n expect(members.map((m: any) => m.id)).toEqual([2, 3])\n })\n })\n\n describe('generateLinkUUID (additional)', () => {\n it('returns immediately when the first UUID is unique', async () => {\n ;(commonFunctions.generateShortUUID as jest.Mock).mockReturnValueOnce('only-one')\n linksQueriesMock.isUniqueUUID.mockResolvedValueOnce(true)\n\n const { uuid } = await service.generateLinkUUID(user.id)\n\n expect(uuid).toBe('only-one')\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenCalledTimes(1)\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenCalledWith(user.id, 'only-one')\n })\n })\n})\n"],"names":["jest","mock","SpaceEnv","fn","mockImplementation","setPermissions","envPermissions","havePermission","haveSpacePermission","removePermissions","actual","requireActual","generateShortUUID","hashPassword","intersectPermissions","describe","SharesManager","name","service","contextManagerMock","headerOriginUrl","notificationsManagerMock","create","mockResolvedValue","undefined","sendEmailNotification","spacesQueriesMock","permissions","usersQueriesMock","createUserOrGuest","deleteGuestLink","usersWhitelist","groupsWhitelist","allUserIdsFromGroupsAndSubGroups","linksQueriesMock","isUniqueUUID","isReservedUUID","allLinksFromSpaceOrShare","createLinkToSpaceOrShare","updateLinkFromSpaceOrShare","linkFromShare","linkFromSpace","sharesQueriesMock","listShareLinks","getShareWithMembers","createShare","updateShare","selectShares","deleteShare","updateMember","updateMembers","shareExistsForOwner","childExistsForShareOwner","clearCachePermissions","user","id","isAdmin","beforeAll","module","Test","createTestingModule","providers","provide","DB_TOKEN_PROVIDER","useValue","ContextManager","NotificationsManager","SpacesQueries","UsersQueries","LinksQueries","SharesQueries","compile","useLogger","get","beforeEach","clearAllMocks","it","expect","toBeDefined","share","file","ownerId","setAllowedPermissions","toBe","SHARE_ALL_OPERATIONS","mockResolvedValueOnce","any","space","alias","root","toHaveBeenCalledWith","toBeNull","parent","rejects","toEqual","HttpException","HttpStatus","BAD_REQUEST","spy","spyOn","result","FORBIDDEN","commonFunctions","mockReturnValueOnce","uuid","generateLinkUUID","toHaveBeenCalledTimes","toHaveBeenNthCalledWith","shareLink","getShareLink","permissionsUtils","calls","baseLink","email","requireAuth","limitAccess","expiresAt","shareName","shareDescription","mockReturnValue","dto","language","isActive","toHaveBeenCalled","guest","createGuestLink","GUEST_PERMISSION","SHARES","password","role","SPACES","lg","res","getLinkFromSpaceOrShare","LINK_TYPE","SPACE","not","SHARE","NOT_FOUND","link","_link","_spaceOrShareId","updateUser","toMatchObject","toBeUndefined","base","date","updateLink","slice","admin","externalPath","asAdminUser","deleteLinksSpy","removeSpy","anything","getShareLinkSpy","getChildShare","getShareSpy","updateSpy","deleteSpy","updateChildShare","deleteChildShare","createLinkSpy","notifySpy","links","linkSettings","createOrUpdateLinksAsMembers","updateLinkSpy","members","linkId","toHaveLength","map","m"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/shares/services/shares-manager.service.spec.ts"],"sourcesContent":["import { HttpException, HttpStatus } from '@nestjs/common'\nimport { Test, TestingModule } from '@nestjs/testing'\nimport * as commonFunctions from '../../../common/functions'\nimport { intersectPermissions } from '../../../common/shared'\nimport { ContextManager } from '../../../infrastructure/context/services/context-manager.service'\nimport { DB_TOKEN_PROVIDER } from '../../../infrastructure/database/constants'\nimport { LINK_TYPE } from '../../links/constants/links'\nimport { LinksQueries } from '../../links/services/links-queries.service'\nimport { NotificationsManager } from '../../notifications/services/notifications-manager.service'\nimport { SpacesQueries } from '../../spaces/services/spaces-queries.service'\nimport * as permissionsUtils from '../../spaces/utils/permissions'\nimport { GUEST_PERMISSION } from '../../users/constants/user'\nimport { UsersQueries } from '../../users/services/users-queries.service'\nimport { SHARE_ALL_OPERATIONS } from '../constants/shares'\nimport { SharesManager } from './shares-manager.service'\nimport { SharesQueries } from './shares-queries.service'\n\n// Mock classes and utility modules used by SharesManager\njest.mock('../../spaces/models/space-env.model', () => ({\n SpaceEnv: jest.fn().mockImplementation(() => ({\n setPermissions: jest.fn(),\n envPermissions: 'ENV_PERMS'\n }))\n}))\n\njest.mock('../../spaces/utils/permissions', () => ({\n havePermission: jest.fn(),\n haveSpacePermission: jest.fn(),\n removePermissions: jest.fn(() => 'trimmed')\n}))\n\njest.mock('../../../common/functions', () => {\n const actual = jest.requireActual('../../../common/functions')\n return {\n ...actual,\n generateShortUUID: jest.fn(),\n hashPassword: jest.fn()\n }\n})\n\njest.mock('../../../common/shared', () => {\n const actual = jest.requireActual('../../../common/shared')\n return {\n ...actual,\n intersectPermissions: jest.fn()\n }\n})\n\ndescribe(SharesManager.name, () => {\n let service: SharesManager\n\n // Mocks\n const contextManagerMock = {\n headerOriginUrl: jest.fn()\n }\n\n const notificationsManagerMock = {\n create: jest.fn().mockResolvedValue(undefined),\n sendEmailNotification: jest.fn().mockResolvedValue(undefined)\n }\n\n const spacesQueriesMock = {\n permissions: jest.fn()\n }\n\n const usersQueriesMock = {\n createUserOrGuest: jest.fn(),\n deleteGuestLink: jest.fn(),\n usersWhitelist: jest.fn().mockResolvedValue([]),\n groupsWhitelist: jest.fn().mockResolvedValue([]),\n allUserIdsFromGroupsAndSubGroups: jest.fn().mockResolvedValue([])\n }\n\n const linksQueriesMock = {\n isUniqueUUID: jest.fn(),\n isReservedUUID: jest.fn(),\n allLinksFromSpaceOrShare: jest.fn(),\n createLinkToSpaceOrShare: jest.fn(),\n updateLinkFromSpaceOrShare: jest.fn(),\n linkFromShare: jest.fn(),\n linkFromSpace: jest.fn()\n }\n\n const sharesQueriesMock = {\n permissions: jest.fn(),\n listShareLinks: jest.fn(),\n getShareWithMembers: jest.fn(),\n createShare: jest.fn(),\n updateShare: jest.fn(),\n selectShares: jest.fn(),\n deleteShare: jest.fn(),\n updateMember: jest.fn(),\n updateMembers: jest.fn(),\n shareExistsForOwner: jest.fn(),\n childExistsForShareOwner: jest.fn(),\n clearCachePermissions: jest.fn().mockResolvedValue(true)\n }\n\n const user = { id: 1, isAdmin: false } as any\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n { provide: DB_TOKEN_PROVIDER, useValue: {} },\n { provide: ContextManager, useValue: contextManagerMock },\n { provide: NotificationsManager, useValue: notificationsManagerMock },\n { provide: SpacesQueries, useValue: spacesQueriesMock },\n { provide: UsersQueries, useValue: usersQueriesMock },\n { provide: LinksQueries, useValue: linksQueriesMock },\n { provide: SharesQueries, useValue: sharesQueriesMock },\n SharesManager\n ]\n }).compile()\n\n module.useLogger(['fatal'])\n service = module.get<SharesManager>(SharesManager)\n })\n\n beforeEach(() => {\n jest.clearAllMocks()\n })\n\n it('should be defined', () => {\n expect(service).toBeDefined()\n })\n\n describe('setAllowedPermissions', () => {\n it('sets all operations when the user is the file owner (personal space case)', async () => {\n const share: any = { file: { ownerId: user.id, permissions: '' } }\n await service.setAllowedPermissions(user, share)\n expect(share.file.permissions).toBe(SHARE_ALL_OPERATIONS)\n })\n\n it('uses space permissions when file has a space alias', async () => {\n spacesQueriesMock.permissions.mockResolvedValueOnce({ any: 'thing' })\n const share: any = {\n file: { ownerId: 999, space: { alias: 'space-1', root: { alias: 'root' } }, permissions: undefined }\n }\n await service.setAllowedPermissions(user, share)\n expect(spacesQueriesMock.permissions).toHaveBeenCalledWith(user.id, 'space-1', 'root')\n expect(share.file.ownerId).toBeNull()\n expect(share.file.permissions).toBe('ENV_PERMS')\n })\n\n it('uses parent share permissions when parent alias is present', async () => {\n sharesQueriesMock.permissions.mockResolvedValueOnce({ permissions: 'PARENT_PERMS' })\n const share: any = {\n ownerId: 77,\n parent: { alias: 'parent-share' },\n file: { permissions: undefined }\n }\n await service.setAllowedPermissions(user, share)\n expect(sharesQueriesMock.permissions).toHaveBeenCalledWith(user.id, 'parent-share', +user.isAdmin)\n expect(share.file.permissions).toBe('PARENT_PERMS')\n })\n\n it('throws Bad Request when missing required information', async () => {\n const share: any = { file: {}, parent: {} }\n await expect(service.setAllowedPermissions(user, share)).rejects.toEqual(new HttpException('Missing information', HttpStatus.BAD_REQUEST))\n })\n })\n\n describe('getShareWithMembers', () => {\n it('returns the share and calls setAllowedPermissions', async () => {\n const share: any = { id: 10, file: {} }\n sharesQueriesMock.getShareWithMembers.mockResolvedValueOnce(share)\n const spy = jest.spyOn(service, 'setAllowedPermissions').mockResolvedValueOnce(void 0)\n\n const result = await service.getShareWithMembers(user, 10, true)\n\n expect(result).toBe(share)\n expect(spy).toHaveBeenCalledWith(user, share, true)\n })\n\n it('throws Forbidden when share is not found or not authorized', async () => {\n sharesQueriesMock.getShareWithMembers.mockResolvedValueOnce(null)\n await expect(service.getShareWithMembers(user, 99, false)).rejects.toEqual(new HttpException('Not authorized', HttpStatus.FORBIDDEN))\n })\n })\n\n describe('generateLinkUUID', () => {\n it('loops until a unique UUID is found', async () => {\n ;(commonFunctions.generateShortUUID as jest.Mock).mockReturnValueOnce('aaa').mockReturnValueOnce('bbb')\n\n linksQueriesMock.isUniqueUUID.mockResolvedValueOnce(false).mockResolvedValueOnce(true)\n\n const { uuid } = await service.generateLinkUUID(user.id)\n\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenCalledTimes(2)\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenNthCalledWith(1, user.id, 'aaa')\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenNthCalledWith(2, user.id, 'bbb')\n expect(uuid).toBe('bbb')\n })\n })\n\n describe('getShareLink', () => {\n it('returns the share link and trims unsupported permissions', async () => {\n const shareLink: any = { id: 5, file: { permissions: 'ORIG' } }\n sharesQueriesMock.listShareLinks.mockResolvedValueOnce(shareLink)\n const spy = jest.spyOn(service, 'setAllowedPermissions').mockResolvedValueOnce(void 0)\n\n const result = await service.getShareLink(user, 5)\n\n expect(spy).toHaveBeenCalledWith(user, shareLink)\n expect(result).toBe(shareLink)\n expect(result.file.permissions).toBe('trimmed')\n expect((permissionsUtils.removePermissions as jest.Mock).mock.calls[0][0]).toBe('ORIG')\n })\n\n it('throws Forbidden when link is not found', async () => {\n sharesQueriesMock.listShareLinks.mockResolvedValueOnce(null)\n await expect(service.getShareLink(user, 123)).rejects.toEqual(new HttpException('Not authorized', HttpStatus.FORBIDDEN))\n })\n })\n\n describe('updateLinkFromSpaceOrShare (from API)', () => {\n it('intersects permissions and returns updated link object', async () => {\n const baseLink: any = {\n id: 42,\n name: 'old',\n email: 'x@x',\n requireAuth: false,\n limitAccess: null,\n expiresAt: null,\n permissions: 'OLD',\n shareName: 'OldShare',\n shareDescription: 'OldDesc'\n }\n jest.spyOn(service, 'getLinkFromSpaceOrShare').mockResolvedValueOnce(baseLink)\n jest.spyOn(service, 'getShareLink').mockResolvedValueOnce({ file: { permissions: 'SHARE_PERMS' } } as any)\n ;(intersectPermissions as jest.Mock).mockReturnValue('INTERSECTED')\n linksQueriesMock.updateLinkFromSpaceOrShare.mockResolvedValueOnce(undefined)\n\n const dto: any = {\n permissions: 'NEW_PERMS',\n language: 'fr',\n isActive: false\n }\n\n const result = await service.updateLinkFromSpaceOrShare(user, 7, 55, 1 as any, dto, true)\n\n expect(linksQueriesMock.updateLinkFromSpaceOrShare).toHaveBeenCalled()\n expect(result.permissions).toBe('INTERSECTED')\n expect(result.language).toBe('fr')\n expect(result.isActive).toBe(false)\n })\n })\n\n describe('createGuestLink', () => {\n it('creates guest link with hashed password and returns created user info', async () => {\n ;(commonFunctions.hashPassword as jest.Mock).mockResolvedValue('HASHED')\n ;(commonFunctions.generateShortUUID as jest.Mock).mockReturnValue('RANDOMSEQ')\n usersQueriesMock.createUserOrGuest.mockResolvedValueOnce(99)\n\n const guest = await service.createGuestLink(GUEST_PERMISSION.SHARES, 'plaintext', 'en', true)\n\n expect(usersQueriesMock.createUserOrGuest).toHaveBeenCalled()\n expect(guest.id).toBe(99)\n expect(guest.password).toBe('HASHED')\n expect(guest.role).toBeDefined()\n expect(guest.permissions).toBe(GUEST_PERMISSION.SHARES)\n expect(guest.language).toBe('en')\n expect(guest.isActive).toBe(true)\n })\n\n it('generates a random password and defaults isActive when not provided', async () => {\n ;(commonFunctions.hashPassword as jest.Mock).mockResolvedValue('HASHED-RAND')\n ;(commonFunctions.generateShortUUID as jest.Mock).mockReturnValueOnce('RANDOMSEQ')\n usersQueriesMock.createUserOrGuest.mockResolvedValueOnce(123)\n\n const guest = await service.createGuestLink(GUEST_PERMISSION.SPACES)\n\n expect(commonFunctions.hashPassword).toHaveBeenCalled()\n expect(guest.id).toBe(123)\n expect(guest.isActive).toBe(true)\n expect(guest.language).toBeNull()\n })\n })\n\n describe('getLinkFromSpaceOrShare', () => {\n it('returns a link guest for SPACE type', async () => {\n const lg = { id: 1 }\n linksQueriesMock.linkFromSpace.mockResolvedValueOnce(lg)\n\n const res = await service.getLinkFromSpaceOrShare(user, 11, 22, LINK_TYPE.SPACE)\n\n expect(res).toBe(lg)\n expect(linksQueriesMock.linkFromSpace).toHaveBeenCalledWith(user.id, 11, 22)\n expect(linksQueriesMock.linkFromShare).not.toHaveBeenCalled()\n })\n\n it('returns a link guest for SHARE type', async () => {\n const lg = { id: 2 }\n linksQueriesMock.linkFromShare.mockResolvedValueOnce(lg)\n\n const res = await service.getLinkFromSpaceOrShare(user, 33, 44, LINK_TYPE.SHARE)\n\n expect(res).toBe(lg)\n expect(linksQueriesMock.linkFromShare).toHaveBeenCalledWith(user.id, 33, 44, +user.isAdmin)\n expect(linksQueriesMock.linkFromSpace).not.toHaveBeenCalled()\n })\n\n it('throws when link not found', async () => {\n linksQueriesMock.linkFromSpace.mockResolvedValueOnce(null)\n\n await expect(service.getLinkFromSpaceOrShare(user, 55, 66, LINK_TYPE.SPACE)).rejects.toEqual(\n new HttpException('Link not found', HttpStatus.NOT_FOUND)\n )\n })\n })\n\n describe('updateLinkFromSpaceOrShare (additional branches)', () => {\n it('returns null when no diff and not from API', async () => {\n const link: any = { id: 1, name: 'n', email: 'e', requireAuth: false, limitAccess: null, expiresAt: null }\n jest.spyOn(service, 'getLinkFromSpaceOrShare').mockResolvedValueOnce(link)\n\n const result = await service.updateLinkFromSpaceOrShare(user, 1, 2, LINK_TYPE.SHARE, {}, false)\n\n expect(result).toBeNull()\n expect(linksQueriesMock.updateLinkFromSpaceOrShare).not.toHaveBeenCalled()\n })\n\n it('hashes password and does not leak it when fromAPI is true', async () => {\n const link: any = { id: 1 }\n jest.spyOn(service, 'getLinkFromSpaceOrShare').mockResolvedValueOnce(link)\n ;(commonFunctions.hashPassword as jest.Mock).mockResolvedValueOnce('HASHED')\n ;(linksQueriesMock.updateLinkFromSpaceOrShare as jest.Mock).mockImplementation(async (_link: any, _spaceOrShareId: number, updateUser: any) => {\n // Assert at call time before the service deletes the password\n expect(updateUser).toMatchObject({ password: 'HASHED' })\n return\n })\n\n const result = await service.updateLinkFromSpaceOrShare(user, 1, 2, LINK_TYPE.SHARE, { password: 'secret' }, true)\n\n expect(linksQueriesMock.updateLinkFromSpaceOrShare).toHaveBeenCalled()\n // The returned link must not leak password\n expect(result).toBe(link)\n expect((result as any).password).toBeUndefined()\n })\n\n it('updates multiple link/user fields and ignores equal expiresAt', async () => {\n const base = {\n id: 9,\n name: 'a',\n email: 'b',\n requireAuth: false,\n limitAccess: null,\n expiresAt: { date: '2025-01-01' }\n }\n jest.spyOn(service, 'getLinkFromSpaceOrShare').mockResolvedValueOnce(base as any)\n linksQueriesMock.updateLinkFromSpaceOrShare.mockResolvedValueOnce(undefined)\n\n const dto = {\n name: 'a2',\n email: 'b2',\n requireAuth: true,\n limitAccess: 5,\n expiresAt: { date: '2025-01-01' } // equal, should be ignored\n }\n\n await service.updateLinkFromSpaceOrShare(user, 9, 99, LINK_TYPE.SHARE, dto as any, false)\n\n const [, , , updateLink] = (linksQueriesMock.updateLinkFromSpaceOrShare as jest.Mock).mock.calls[0].slice(0, 5)\n expect(updateLink).toMatchObject({\n name: 'a2',\n email: 'b2',\n requireAuth: true,\n limitAccess: 5\n })\n expect(updateLink.expiresAt).toBeUndefined()\n })\n })\n\n describe('setAllowedPermissions (additional branches)', () => {\n it('sets all operations when share has externalPath and user is admin', async () => {\n const admin = { id: 10, isAdmin: true } as any\n const share: any = { externalPath: '/ext', file: {} }\n await service.setAllowedPermissions(admin, share)\n expect(share.file.permissions).toBe(SHARE_ALL_OPERATIONS)\n })\n\n it('throws NOT_FOUND when space permissions are missing', async () => {\n spacesQueriesMock.permissions.mockResolvedValueOnce(null)\n const share: any = { file: { space: { alias: 'space-x', root: { alias: 'r' } } } }\n\n await expect(service.setAllowedPermissions(user, share)).rejects.toEqual(new HttpException('Space not found', HttpStatus.NOT_FOUND))\n })\n\n it('throws NOT_FOUND when parent share permissions are missing', async () => {\n sharesQueriesMock.permissions.mockResolvedValueOnce(null)\n const share: any = { ownerId: 42, parent: { alias: 'parent' }, file: {} }\n\n await expect(service.setAllowedPermissions(user, share)).rejects.toEqual(new HttpException('Share not found', HttpStatus.NOT_FOUND))\n })\n\n it('uses owner permissions when asAdmin is true', async () => {\n const asAdminUser = { id: 3, isAdmin: false } as any\n sharesQueriesMock.permissions.mockResolvedValueOnce({ permissions: 'ADMIN_PARENT' })\n const share: any = { ownerId: 77, parent: { alias: 'pa' }, file: {} }\n\n await service.setAllowedPermissions(asAdminUser, share, true)\n\n expect(sharesQueriesMock.permissions).toHaveBeenCalledWith(77, 'pa', +asAdminUser.isAdmin)\n expect(share.file.permissions).toBe('ADMIN_PARENT')\n })\n })\n\n describe('getShareLink (additional branch)', () => {\n it('does not trim permissions if file.permissions is falsy', async () => {\n const shareLink: any = { id: 7, file: {} }\n sharesQueriesMock.listShareLinks.mockResolvedValueOnce(shareLink)\n const spy = jest.spyOn(service, 'setAllowedPermissions').mockResolvedValueOnce(void 0)\n\n const res = await service.getShareLink(user, 7)\n\n expect(spy).toHaveBeenCalled()\n expect(res).toBe(shareLink)\n expect(permissionsUtils.removePermissions).not.toHaveBeenCalled()\n })\n })\n\n describe('deleteShare', () => {\n it('throws Forbidden when user is not admin and not owner', async () => {\n sharesQueriesMock.shareExistsForOwner.mockResolvedValueOnce(false)\n\n await expect(service.deleteShare({ id: 2, isAdmin: false } as any, 123)).rejects.toEqual(\n new HttpException('Not authorized', HttpStatus.FORBIDDEN)\n )\n })\n\n it('deletes links and removes shares when authorized (asAdmin)', async () => {\n const deleteLinksSpy = jest.spyOn(service, 'deleteAllLinkMembers').mockResolvedValue(void 0)\n const removeSpy = jest.spyOn<any, any>(service as any, 'removeShareFromOwners').mockResolvedValue(void 0)\n\n await service.deleteShare(user, 456, true)\n\n expect(deleteLinksSpy).toHaveBeenCalledWith(456, expect.anything())\n expect(removeSpy).toHaveBeenCalledWith(456, 'all', false, user.id)\n })\n })\n\n describe('child share wrappers', () => {\n it('getChildShare returns share link when isLink = true', async () => {\n sharesQueriesMock.childExistsForShareOwner.mockResolvedValueOnce(99)\n const getShareLinkSpy = jest.spyOn(service, 'getShareLink').mockResolvedValueOnce({ id: 99 } as any)\n\n const res = await service.getChildShare(user, 1, 99, true)\n expect(res).toEqual({ id: 99 })\n expect(getShareLinkSpy).toHaveBeenCalledWith(user, 99, true)\n })\n\n it('getChildShare returns child share when isLink = false', async () => {\n sharesQueriesMock.childExistsForShareOwner.mockResolvedValueOnce(100)\n const getShareSpy = jest.spyOn(service, 'getShareWithMembers').mockResolvedValueOnce({ id: 100 } as any)\n\n const res = await service.getChildShare(user, 1, 100, false)\n expect(res).toEqual({ id: 100 })\n expect(getShareSpy).toHaveBeenCalledWith(user, 100, true)\n })\n\n it('updateChildShare forwards update and deleteChildShare forwards delete', async () => {\n sharesQueriesMock.childExistsForShareOwner.mockResolvedValue(200)\n const updateSpy = jest.spyOn(service, 'updateShare').mockResolvedValueOnce({ id: 200 } as any)\n const deleteSpy = jest.spyOn(service, 'deleteShare').mockResolvedValueOnce(void 0)\n\n await service.updateChildShare(user, 1, 200, {} as any)\n expect(updateSpy).toHaveBeenCalledWith(user, 200, {} as any, true)\n\n await service.deleteChildShare(user, 1, 200)\n expect(deleteSpy).toHaveBeenCalledWith(user, 200, true)\n })\n\n it('throws Forbidden when not allowed to manage child share', async () => {\n sharesQueriesMock.childExistsForShareOwner.mockResolvedValueOnce(null)\n await expect(service.getChildShare(user, 1, 2, false)).rejects.toEqual(new HttpException('Not authorized', HttpStatus.FORBIDDEN))\n })\n })\n\n describe('createOrUpdateLinksAsMembers', () => {\n it('creates new links for id < 0 and notifies guest', async () => {\n const createLinkSpy = jest.spyOn<any, any>(service as any, 'createLinkFromSpaceOrShare').mockResolvedValue(void 0)\n const notifySpy = jest.spyOn<any, any>(service as any, 'notifyGuestLink').mockResolvedValue(void 0)\n\n const links = [{ id: -1, linkSettings: { uuid: 'u', email: 'e', permissions: 'p' }, permissions: 'p' }] as any\n\n const res = await service.createOrUpdateLinksAsMembers(user, { id: 1, name: 'S' } as any, LINK_TYPE.SHARE, links)\n\n expect(res).toEqual([])\n expect(createLinkSpy).toHaveBeenCalled()\n expect(notifySpy).toHaveBeenCalled()\n })\n\n it('updates modified links and returns them along with unmodified ones', async () => {\n const updateLinkSpy = jest.spyOn(service, 'updateLinkFromSpaceOrShare').mockResolvedValue(void 0)\n\n const members = await service.createOrUpdateLinksAsMembers(user, { id: 1, name: 'S' } as any, LINK_TYPE.SHARE, [\n { id: 2, linkId: 2, permissions: 'p', linkSettings: { name: 'new' } },\n { id: 3, linkId: 3, permissions: 'q' } // unmodified\n ] as any)\n\n expect(updateLinkSpy).toHaveBeenCalledWith(user, 2, 1, LINK_TYPE.SHARE, { name: 'new' })\n expect(members).toHaveLength(2)\n expect(members.map((m: any) => m.id)).toEqual([2, 3])\n })\n })\n\n describe('generateLinkUUID (additional)', () => {\n it('returns immediately when the first UUID is unique', async () => {\n ;(commonFunctions.generateShortUUID as jest.Mock).mockReturnValueOnce('only-one')\n linksQueriesMock.isUniqueUUID.mockResolvedValueOnce(true)\n\n const { uuid } = await service.generateLinkUUID(user.id)\n\n expect(uuid).toBe('only-one')\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenCalledTimes(1)\n expect(linksQueriesMock.isUniqueUUID).toHaveBeenCalledWith(user.id, 'only-one')\n })\n })\n})\n"],"names":["jest","mock","SpaceEnv","fn","mockImplementation","setPermissions","envPermissions","havePermission","haveSpacePermission","removePermissions","actual","requireActual","generateShortUUID","hashPassword","intersectPermissions","describe","SharesManager","name","service","contextManagerMock","headerOriginUrl","notificationsManagerMock","create","mockResolvedValue","undefined","sendEmailNotification","spacesQueriesMock","permissions","usersQueriesMock","createUserOrGuest","deleteGuestLink","usersWhitelist","groupsWhitelist","allUserIdsFromGroupsAndSubGroups","linksQueriesMock","isUniqueUUID","isReservedUUID","allLinksFromSpaceOrShare","createLinkToSpaceOrShare","updateLinkFromSpaceOrShare","linkFromShare","linkFromSpace","sharesQueriesMock","listShareLinks","getShareWithMembers","createShare","updateShare","selectShares","deleteShare","updateMember","updateMembers","shareExistsForOwner","childExistsForShareOwner","clearCachePermissions","user","id","isAdmin","beforeAll","module","Test","createTestingModule","providers","provide","DB_TOKEN_PROVIDER","useValue","ContextManager","NotificationsManager","SpacesQueries","UsersQueries","LinksQueries","SharesQueries","compile","useLogger","get","beforeEach","clearAllMocks","it","expect","toBeDefined","share","file","ownerId","setAllowedPermissions","toBe","SHARE_ALL_OPERATIONS","mockResolvedValueOnce","any","space","alias","root","toHaveBeenCalledWith","toBeNull","parent","rejects","toEqual","HttpException","HttpStatus","BAD_REQUEST","spy","spyOn","result","FORBIDDEN","commonFunctions","mockReturnValueOnce","uuid","generateLinkUUID","toHaveBeenCalledTimes","toHaveBeenNthCalledWith","shareLink","getShareLink","permissionsUtils","calls","baseLink","email","requireAuth","limitAccess","expiresAt","shareName","shareDescription","mockReturnValue","dto","language","isActive","toHaveBeenCalled","guest","createGuestLink","GUEST_PERMISSION","SHARES","password","role","SPACES","lg","res","getLinkFromSpaceOrShare","LINK_TYPE","SPACE","not","SHARE","NOT_FOUND","link","_link","_spaceOrShareId","updateUser","toMatchObject","toBeUndefined","base","date","updateLink","slice","admin","externalPath","asAdminUser","deleteLinksSpy","removeSpy","anything","getShareLinkSpy","getChildShare","getShareSpy","updateSpy","deleteSpy","updateChildShare","deleteChildShare","createLinkSpy","notifySpy","links","linkSettings","createOrUpdateLinksAsMembers","updateLinkSpy","members","linkId","toHaveLength","map","m"],"mappings":"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"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -278,10 +274,16 @@ let SharesQueries = class SharesQueries {
278
274
  async updateShare(id, set) {
279
275
  try {
280
276
  (0, _utils.dbCheckAffectedRows)(await this.db.update(_sharesschema.shares).set(set).where((0, _drizzleorm.eq)(_sharesschema.shares.id, id)).limit(1), 1);
281
- this.logger.debug(`${this.updateShare.name} - share (${id}) was updated : ${JSON.stringify(set)}`);
277
+ this.logger.debug({
278
+ tag: this.updateShare.name,
279
+ msg: `share (${id}) was updated : ${JSON.stringify(set)}`
280
+ });
282
281
  return true;
283
282
  } catch (e) {
284
- this.logger.error(`${this.updateShare.name} - share (${id}) was not updated : ${JSON.stringify(set)} : ${e}`);
283
+ this.logger.error({
284
+ tag: this.updateShare.name,
285
+ msg: `share (${id}) was not updated : ${JSON.stringify(set)} : ${e}`
286
+ });
285
287
  return false;
286
288
  }
287
289
  }
@@ -292,10 +294,16 @@ let SharesQueries = class SharesQueries {
292
294
  const where = (0, _utils.convertToWhere)(_sharesmembersschema.sharesMembers, filters);
293
295
  try {
294
296
  (0, _utils.dbCheckAffectedRows)(await this.db.update(_sharesmembersschema.sharesMembers).set(set).where((0, _drizzleorm.and)(...where)).limit(1), 1);
295
- this.logger.debug(`${this.updateMember.name} - ${JSON.stringify(filters)} was updated : ${JSON.stringify(set)}`);
297
+ this.logger.debug({
298
+ tag: this.updateMember.name,
299
+ msg: `${JSON.stringify(filters)} was updated : ${JSON.stringify(set)}`
300
+ });
296
301
  return true;
297
302
  } catch (e) {
298
- this.logger.error(`${this.updateMember.name} - ${JSON.stringify(filters)} was not updated : ${JSON.stringify(set)} : ${e}`);
303
+ this.logger.error({
304
+ tag: this.updateMember.name,
305
+ msg: `${JSON.stringify(filters)} was not updated : ${JSON.stringify(set)} : ${e}`
306
+ });
299
307
  return false;
300
308
  }
301
309
  }
@@ -328,9 +336,15 @@ let SharesQueries = class SharesQueries {
328
336
  permissions: m.permissions
329
337
  }), 1);
330
338
  status[_constants.ACTION.ADD][`${m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST ? 'userIds' : 'groupIds'}`].push(m.id);
331
- this.logger.debug(`${this.updateMembers.name} - ${m.type} (${m.id}) added to the share (${shareId})`);
339
+ this.logger.debug({
340
+ tag: this.updateMembers.name,
341
+ msg: `${m.type} (${m.id}) added to the share (${shareId})`
342
+ });
332
343
  } catch (e) {
333
- this.logger.error(`${this.updateMembers.name} - ${m.type} (${m.id}) was not added to the share (${shareId}) -> : ${e}`);
344
+ this.logger.error({
345
+ tag: this.updateMembers.name,
346
+ msg: `${m.type} (${m.id}) was not added to the share (${shareId}) -> : ${e}`
347
+ });
334
348
  }
335
349
  }
336
350
  // update
@@ -339,9 +353,15 @@ let SharesQueries = class SharesQueries {
339
353
  try {
340
354
  (0, _utils.dbCheckAffectedRows)(await this.db.update(_sharesmembersschema.sharesMembers).set(props).where((0, _drizzleorm.and)((0, _drizzleorm.eq)(_sharesmembersschema.sharesMembers.shareId, shareId), (0, _drizzleorm.eq)(m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST ? _sharesmembersschema.sharesMembers.userId : _sharesmembersschema.sharesMembers.groupId, m.id))).limit(1), 1);
341
355
  status[_constants.ACTION.UPDATE][`${m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST ? 'userIds' : 'groupIds'}`].push(m.id);
342
- this.logger.debug(`${this.updateMembers.name} - ${m.type} (${m.id}) was updated on share (${shareId}) : ${JSON.stringify(props)}`);
356
+ this.logger.debug({
357
+ tag: this.updateMembers.name,
358
+ msg: `${m.type} (${m.id}) was updated on share (${shareId}) : ${JSON.stringify(props)}`
359
+ });
343
360
  } catch (e) {
344
- this.logger.error(`${this.updateMembers.name} - ${m.type} (${m.id}) was not updated on share (${shareId}) : ${JSON.stringify(props)} : ${e}`);
361
+ this.logger.error({
362
+ tag: this.updateMembers.name,
363
+ msg: `${m.type} (${m.id}) was not updated on share (${shareId}) : ${JSON.stringify(props)} : ${e}`
364
+ });
345
365
  }
346
366
  }
347
367
  // remove
@@ -349,9 +369,15 @@ let SharesQueries = class SharesQueries {
349
369
  try {
350
370
  (0, _utils.dbCheckAffectedRows)(await this.db.delete(_sharesmembersschema.sharesMembers).where((0, _drizzleorm.and)((0, _drizzleorm.eq)(_sharesmembersschema.sharesMembers.shareId, shareId), (0, _drizzleorm.eq)(m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST ? _sharesmembersschema.sharesMembers.userId : _sharesmembersschema.sharesMembers.groupId, m.id))), 1);
351
371
  status[_constants.ACTION.DELETE][`${m.type === _member.MEMBER_TYPE.USER || m.type === _member.MEMBER_TYPE.GUEST ? 'userIds' : 'groupIds'}`].push(m.id);
352
- this.logger.debug(`${this.updateMembers.name} - ${m.type} (${m.id}) removed from share (${shareId})`);
372
+ this.logger.debug({
373
+ tag: this.updateMembers.name,
374
+ msg: `${m.type} (${m.id}) removed from share (${shareId})`
375
+ });
353
376
  } catch (e) {
354
- this.logger.error(`${this.updateMembers.name} - ${m.type} (${m.id}) was not removed from share (${shareId}) : ${e}`);
377
+ this.logger.error({
378
+ tag: this.updateMembers.name,
379
+ msg: `${m.type} (${m.id}) was not removed from share (${shareId}) : ${e}`
380
+ });
355
381
  }
356
382
  }
357
383
  return status;
@@ -781,8 +807,14 @@ let SharesQueries = class SharesQueries {
781
807
  const pattern = this.cache.genSlugKey(this.constructor.name, this.permissions.name, userId, shareAlias, '*');
782
808
  const keys = await this.cache.keys(pattern);
783
809
  if (keys.length) {
784
- this.logger.verbose(`${this.clearCachePermissions.name} - ${JSON.stringify(keys)}`);
785
- this.cache.mdel(keys).catch((e)=>this.logger.error(`${this.clearCachePermissions.name} - ${e}`));
810
+ this.logger.verbose({
811
+ tag: this.clearCachePermissions.name,
812
+ msg: `${JSON.stringify(keys)}`
813
+ });
814
+ this.cache.mdel(keys).catch((e)=>this.logger.error({
815
+ tag: this.clearCachePermissions.name,
816
+ msg: `${e}`
817
+ }));
786
818
  }
787
819
  }
788
820
  }