@sync-in/server 1.10.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1057) hide show
  1. package/CHANGELOG.md +47 -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 +18 -17
  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-U5E5H2DD.js → chunk-27ATUHBH.js} +1 -1
  940. package/static/{chunk-HZAB6F4Q.js → chunk-2CKLZ3FM.js} +1 -1
  941. package/static/{chunk-XZHWESIY.js → chunk-2QZPX7LO.js} +1 -1
  942. package/static/{chunk-UOK3LKSX.js → chunk-2R6IBBPZ.js} +1 -1
  943. package/static/{chunk-DVCN3P7Q.js → chunk-4FIGEBNL.js} +1 -1
  944. package/static/chunk-4P3JABAP.js +13 -0
  945. package/static/chunk-5CZOSAMZ.js +1 -0
  946. package/static/{chunk-RBTLSPYJ.js → chunk-677WUBCT.js} +1 -1
  947. package/static/{chunk-KEZNIIFH.js → chunk-74CAHBFM.js} +1 -1
  948. package/static/{chunk-WRK2FTKU.js → chunk-7GWW6MJO.js} +1 -1
  949. package/static/{chunk-EKWB5W72.js → chunk-7WOPGQXB.js} +1 -1
  950. package/static/{chunk-IMFO2MI7.js → chunk-A4UGPSWX.js} +1 -1
  951. package/static/{chunk-KDUAB76O.js → chunk-AHO37FKW.js} +1 -1
  952. package/static/chunk-AQCXMKP3.js +1 -0
  953. package/static/chunk-B6PDYCRO.js +3 -0
  954. package/static/{chunk-PPJCVBJH.js → chunk-CU76ATCF.js} +1 -1
  955. package/static/{chunk-ARS47O5X.js → chunk-CWYHOPOP.js} +1 -1
  956. package/static/{chunk-CSVPAZHK.js → chunk-E5WI5725.js} +1 -1
  957. package/static/{chunk-XX3JPJUM.js → chunk-FC5HTKVM.js} +1 -1
  958. package/static/{chunk-QGHNJVJ6.js → chunk-FOSM7EYI.js} +1 -1
  959. package/static/{chunk-JAJ7VXMB.js → chunk-GAZO25PI.js} +1 -1
  960. package/static/{chunk-IHS5LSJJ.js → chunk-GB7ABR5N.js} +1 -1
  961. package/static/{chunk-27V66YJV.js → chunk-GEHFKZQ5.js} +2 -2
  962. package/static/{chunk-3QTROEHV.js → chunk-GQFMWVFD.js} +1 -1
  963. package/static/{chunk-FWQJ4ZCD.js → chunk-GVNTC564.js} +1 -1
  964. package/static/{chunk-4NIYCYRS.js → chunk-HGL3NYP2.js} +2 -2
  965. package/static/chunk-HLIWPWRA.js +1 -0
  966. package/static/{chunk-3VRUIWQG.js → chunk-HNYB3M4S.js} +1 -1
  967. package/static/{chunk-7HJFIMNF.js → chunk-HUXAUQMN.js} +1 -1
  968. package/static/chunk-I2XA6PPK.js +1 -0
  969. package/static/{chunk-RJULB733.js → chunk-ISV3BO6R.js} +1 -1
  970. package/static/{chunk-R4VYKZVJ.js → chunk-IWWBV6EM.js} +1 -1
  971. package/static/{chunk-TTWMFWEC.js → chunk-JV3AGU5B.js} +1 -1
  972. package/static/{chunk-X7NHX5C7.js → chunk-K25E7YGG.js} +1 -1
  973. package/static/chunk-K46PUTZB.js +1 -0
  974. package/static/{chunk-D2MLAO5N.js → chunk-KERFLJ56.js} +1 -7
  975. package/static/{chunk-LZUHREOF.js → chunk-KJD3KFF3.js} +1 -1
  976. package/static/chunk-KPKSI23S.js +1 -0
  977. package/static/{chunk-CMNMPG6Z.js → chunk-KZS7CTNR.js} +1 -1
  978. package/static/{chunk-RNVPQQKT.js → chunk-L5IHUVXL.js} +1 -1
  979. package/static/{chunk-2GXOVGTD.js → chunk-L7RRX2M3.js} +1 -1
  980. package/static/{chunk-WFMEUST4.js → chunk-LGWJ2WKU.js} +1 -1
  981. package/static/{chunk-ZOMRIN3G.js → chunk-MLC7JK2H.js} +2 -2
  982. package/static/{chunk-76REYAEA.js → chunk-MOHNYW2A.js} +1 -1
  983. package/static/{chunk-ZHUBWKA2.js → chunk-MTRXBVWZ.js} +1 -1
  984. package/static/{chunk-QJ22N76V.js → chunk-MZQK6LNV.js} +1 -1
  985. package/static/{chunk-SDJNZULP.js → chunk-NCDUOVMW.js} +1 -1
  986. package/static/chunk-NGUAJIGI.js +1 -0
  987. package/static/chunk-NIPP6JDI.js +1 -0
  988. package/static/{chunk-VD5JHSDS.js → chunk-NMTBMHUL.js} +1 -1
  989. package/static/chunk-O4XXMZFX.js +4 -0
  990. package/static/{chunk-WZPF4LS2.js → chunk-OANZITPM.js} +1 -1
  991. package/static/{chunk-JNTNMIUH.js → chunk-OGE4SAHU.js} +1 -1
  992. package/static/{chunk-S6H2ELRY.js → chunk-OI3ME22C.js} +1 -1
  993. package/static/{chunk-7KAYOR3A.js → chunk-Q3EGCMF5.js} +1 -1
  994. package/static/chunk-QF2NSHZA.js +1 -0
  995. package/static/{chunk-3ZBAQTHJ.js → chunk-QIGUDEZF.js} +1 -1
  996. package/static/{chunk-76M3BMK6.js → chunk-QJVC3SRJ.js} +11 -11
  997. package/static/{chunk-VBTZDHZ3.js → chunk-QKN6LAAA.js} +1 -1
  998. package/static/{chunk-JRXG43AA.js → chunk-QRFESU5O.js} +2 -2
  999. package/static/chunk-QVRVFYJH.js +1 -0
  1000. package/static/{chunk-BCN4T5DO.js → chunk-RFJIPIOK.js} +2 -2
  1001. package/static/{chunk-2RWLNKZH.js → chunk-RLL634K4.js} +1 -1
  1002. package/static/{chunk-D5FQ72R4.js → chunk-RS2OFKWP.js} +1 -1
  1003. package/static/{chunk-CN5YVRFT.js → chunk-RWAAC3A4.js} +1 -1
  1004. package/static/{chunk-LWSCODLD.js → chunk-RWCNTCU5.js} +1 -1
  1005. package/static/{chunk-FTFEQDWH.js → chunk-S5Y64DDS.js} +1 -1
  1006. package/static/{chunk-J7474P3L.js → chunk-SLG5KDU6.js} +1 -1
  1007. package/static/chunk-TJ4CVFEL.js +1 -0
  1008. package/static/{chunk-KAUCN24H.js → chunk-TWCGKSYE.js} +1 -1
  1009. package/static/{chunk-PDG7DOEF.js → chunk-UMDRE4S7.js} +1 -1
  1010. package/static/chunk-VRIOLRYR.js +5 -0
  1011. package/static/chunk-VS4O2XDP.js +1 -0
  1012. package/static/{chunk-ZEJLIGAY.js → chunk-VSBFNFOM.js} +1 -1
  1013. package/static/{chunk-XSURUW7C.js → chunk-WN4WXCVK.js} +1 -1
  1014. package/static/{chunk-S44QIK3G.js → chunk-WX7RXW7K.js} +1 -1
  1015. package/static/{chunk-3ZLBVUCX.js → chunk-XC4POKR3.js} +2 -2
  1016. package/static/{chunk-TNCKNU6I.js → chunk-Y4AUYQTG.js} +1 -1
  1017. package/static/{chunk-3MVPXC3U.js → chunk-Y67J3BOL.js} +1 -1
  1018. package/static/{chunk-QTPIEEZW.js → chunk-YMIXHRJQ.js} +1 -7
  1019. package/static/{chunk-VZFZUI6D.js → chunk-ZUNKFAKP.js} +1 -1
  1020. package/static/index.html +3 -3
  1021. package/static/main-QN4UCOC5.js +5 -0
  1022. package/static/{styles-XLLEY5Y3.css → styles-46GLIE7Y.css} +1 -1
  1023. package/server/authentication/constants/auth-ldap.js.map +0 -1
  1024. package/server/authentication/dto/two-fa-verify.dto.js.map +0 -1
  1025. package/server/authentication/guards/auth-two-fa-guard.js.map +0 -1
  1026. package/server/authentication/interfaces/two-fa-setup.interface.js +0 -10
  1027. package/server/authentication/interfaces/two-fa-setup.interface.js.map +0 -1
  1028. package/server/authentication/models/auth-method.js +0 -18
  1029. package/server/authentication/models/auth-method.js.map +0 -1
  1030. package/server/authentication/services/auth-manager.service.js.map +0 -1
  1031. package/server/authentication/services/auth-manager.service.spec.js.map +0 -1
  1032. package/server/authentication/services/auth-methods/auth-method-database.service.js.map +0 -1
  1033. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +0 -1
  1034. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +0 -326
  1035. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +0 -1
  1036. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +0 -534
  1037. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +0 -1
  1038. package/server/authentication/services/auth-methods/auth-method-two-fa.service.js.map +0 -1
  1039. package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js.map +0 -1
  1040. package/static/chunk-2YQ4SX3A.js +0 -13
  1041. package/static/chunk-46TJLPJY.js +0 -1
  1042. package/static/chunk-6OEOADR6.js +0 -1
  1043. package/static/chunk-AALPWGPB.js +0 -3
  1044. package/static/chunk-CVXLHSO5.js +0 -1
  1045. package/static/chunk-G7RZN7HN.js +0 -1
  1046. package/static/chunk-LTJNLOX2.js +0 -1
  1047. package/static/chunk-NIKNG2FX.js +0 -1
  1048. package/static/chunk-NNZWSNAW.js +0 -1
  1049. package/static/chunk-NWKBB7J4.js +0 -1
  1050. package/static/chunk-PVYVY3GD.js +0 -1
  1051. package/static/chunk-Q5X5TPAG.js +0 -1
  1052. package/static/chunk-R4VMWCM5.js +0 -1
  1053. package/static/chunk-SNOOCDJD.js +0 -1
  1054. package/static/chunk-SPQH3ATC.js +0 -5
  1055. package/static/chunk-ZCSHU3D7.js +0 -1
  1056. package/static/chunk-ZU5MQTFN.js +0 -4
  1057. package/static/main-5O3KLGIR.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../backend/src/applications/users/users.gateway.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { BeforeApplicationShutdown, Logger } from '@nestjs/common'\nimport {\n MessageBody,\n OnGatewayConnection,\n OnGatewayDisconnect,\n OnGatewayInit,\n SubscribeMessage,\n WebSocketGateway,\n WebSocketServer\n} from '@nestjs/websockets'\nimport { Server } from 'socket.io'\nimport { JwtIdentityPayload } from '../../authentication/interfaces/jwt-payload.interface'\nimport { sleep } from '../../common/functions'\nimport { GetWsUser } from '../../infrastructure/websocket/decorators/web-socket-user.decorator'\nimport { AuthenticatedSocketIO } from '../../infrastructure/websocket/interfaces/auth-socket-io.interface'\nimport { getClientAddress } from '../../infrastructure/websocket/utils'\nimport { USER_ONLINE_STATUS } from './constants/user'\nimport { USER_ROOM_PREFIX, USERS_WS } from './constants/websocket'\nimport { EventChangeOnlineStatus, EventUpdateOnlineStatus, UserOnline } from './interfaces/websocket.interface'\nimport { UsersManager } from './services/users-manager.service'\n\n@WebSocketGateway()\nexport class WebSocketUsers implements BeforeApplicationShutdown, OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect {\n @WebSocketServer() server: Server\n private readonly internalEventOnlineUsers = 'listOnlineUsers'\n private readonly logger = new Logger(WebSocketUsers.name)\n private initialized = false\n private shuttingDown = false\n private readonly waitTime: number = 3000 //ms\n // to show local rooms : this.server.of('/').adapter.rooms\n\n constructor(private readonly usersManager: UsersManager) {}\n\n afterInit(server: Server): any {\n server.on(this.internalEventOnlineUsers, (cb) => cb(this.filterUserRooms(this.server.sockets.adapter.rooms.keys())))\n setTimeout(() => (this.initialized = true), this.waitTime)\n }\n\n beforeApplicationShutdown(_signal?: string) {\n this.shuttingDown = true\n }\n\n async handleConnection(socket: AuthenticatedSocketIO): Promise<void> {\n if (this.shuttingDown) return\n socket.join(`${USER_ROOM_PREFIX}${socket.user.id}`)\n this.sendOnlineUser(socket.user, parseInt((socket.handshake.query.onlineStatus as string) || '0')).catch((e: Error) =>\n this.logger.error(`${this.handleConnection.name} - ${e}`)\n )\n this.sendAllOnlineUsers(socket.user.id).catch((e: Error) => this.logger.error(`${this.handleConnection.name} - ${e}`))\n this.logger.log(\n `Connected: *${socket.user.login}* (${socket.user.id}) [${socket.id}] ${getClientAddress(socket)} ${socket.handshake.headers['user-agent']}`\n )\n }\n\n async handleDisconnect(socket: AuthenticatedSocketIO): Promise<void> {\n if (this.shuttingDown) return\n socket.leave(`${USER_ROOM_PREFIX}${socket.user.id}`)\n this.sendOfflineUser(socket.user.id).catch((e: Error) => this.logger.error(`${this.handleDisconnect.name} - ${e}`))\n this.logger.log(\n `Disconnected: *${socket.user.login}* (${socket.user.id}) [${socket.id}] ${getClientAddress(socket)} ${socket.handshake.headers['user-agent']}`\n )\n }\n\n @SubscribeMessage(USERS_WS.EVENTS.ONLINE_STATUS)\n setOnlineStatus(@GetWsUser() user: JwtIdentityPayload, @MessageBody() body: EventChangeOnlineStatus) {\n if (body.store) {\n // store in db\n this.usersManager.setOnlineStatus(user, body.status)\n }\n this.sendOnlineStatus(user.id, body.status).catch((e: Error) => this.logger.error(`${this.setOnlineStatus.name} - ${e}`))\n }\n\n private sendMessageToUsers(userIds: number[], eventName: string, body: any) {\n if (userIds.length) {\n this.server.to(userIds.map((uid) => `${USER_ROOM_PREFIX}${uid}`)).emit(eventName, body)\n }\n }\n\n private async sendOnlineUser(user: JwtIdentityPayload, status: USER_ONLINE_STATUS) {\n if (!this.initialized) {\n // all online users will be propagated in the next seconds\n return\n }\n if (status === USER_ONLINE_STATUS.OFFLINE) {\n // user's online status is offline, do not send update to others\n return\n }\n const userIdsToNotify: number[] = await this.getOnlineUserIdsWhitelist(user.id)\n if (userIdsToNotify.length) {\n const onlineUser: UserOnline = {\n id: user.id,\n login: user.login,\n email: user.email,\n fullName: user.fullName,\n onlineStatus: status\n } satisfies UserOnline\n this.sendMessageToUsers(userIdsToNotify, USERS_WS.EVENTS.ONLINE_USER, onlineUser)\n }\n }\n\n private async sendOfflineUser(userId: number): Promise<void> {\n // avoid sending offline event on quick reconnects\n await sleep(this.waitTime)\n // check if user room is empty before send event\n if ((await this.getOnlineUserIds()).indexOf(userId) === -1) {\n this.sendOnlineStatus(userId, USER_ONLINE_STATUS.OFFLINE).catch((e: Error) => this.logger.error(`${this.sendOfflineUser.name} - ${e}`))\n }\n }\n\n private async sendAllOnlineUsers(toUserId: number) {\n if (!this.initialized) {\n // wait for all reconnections before propagating all online users\n await sleep(this.waitTime)\n }\n const onlineUserIds: number[] = await this.getOnlineUserIdsWhitelist(toUserId)\n if (onlineUserIds.length) {\n const onlineUsers: UserOnline[] = await this.usersManager.getOnlineUsers(onlineUserIds)\n if (onlineUsers.length) {\n this.sendMessageToUsers([toUserId], USERS_WS.EVENTS.ONLINE_USERS, onlineUsers)\n }\n }\n }\n\n private async sendOnlineStatus(userId: number, status: USER_ONLINE_STATUS) {\n const userIdsToNotify: number[] = await this.getOnlineUserIdsWhitelist(userId, false)\n if (userIdsToNotify.length) {\n const onlineStatus: EventUpdateOnlineStatus = { userId: userId, status: status }\n this.sendMessageToUsers(userIdsToNotify, USERS_WS.EVENTS.ONLINE_STATUS, onlineStatus)\n }\n }\n\n private async getOnlineUserIdsWhitelist(userId: number, excludeUser = true): Promise<number[]> {\n /* get online users visible for the user */\n const currentOnlineUserIds: number[] = await this.getOnlineUserIds()\n if (currentOnlineUserIds.length) {\n let usersWhitelist: number[] = await this.usersManager.usersWhitelist(userId)\n if (usersWhitelist) {\n if (excludeUser) {\n usersWhitelist = usersWhitelist.filter((uid) => uid !== userId)\n }\n return usersWhitelist.filter((uid) => currentOnlineUserIds.indexOf(uid) > -1)\n }\n }\n return []\n }\n\n private async getOnlineUserIds(): Promise<number[]> {\n /* get all online users from all workers */\n const localUserIds: number[] = this.filterUserRooms(this.server.sockets.adapter.rooms.keys())\n const remoteUserIds: number[][] = await this.server.serverSideEmitWithAck(this.internalEventOnlineUsers)\n return [...new Set([...localUserIds, ...remoteUserIds].flat())]\n }\n\n private filterUserRooms(rooms: Iterable<string>): number[] {\n return [...rooms].filter((r) => r.startsWith(USER_ROOM_PREFIX)).map((ur) => parseInt(ur.split(USER_ROOM_PREFIX).pop()))\n }\n}\n"],"names":["WebSocketUsers","afterInit","server","on","internalEventOnlineUsers","cb","filterUserRooms","sockets","adapter","rooms","keys","setTimeout","initialized","waitTime","beforeApplicationShutdown","_signal","shuttingDown","handleConnection","socket","join","USER_ROOM_PREFIX","user","id","sendOnlineUser","parseInt","handshake","query","onlineStatus","catch","e","logger","error","name","sendAllOnlineUsers","log","login","getClientAddress","headers","handleDisconnect","leave","sendOfflineUser","setOnlineStatus","body","store","usersManager","status","sendOnlineStatus","sendMessageToUsers","userIds","eventName","length","to","map","uid","emit","USER_ONLINE_STATUS","OFFLINE","userIdsToNotify","getOnlineUserIdsWhitelist","onlineUser","email","fullName","USERS_WS","EVENTS","ONLINE_USER","userId","sleep","getOnlineUserIds","indexOf","toUserId","onlineUserIds","onlineUsers","getOnlineUsers","ONLINE_USERS","ONLINE_STATUS","excludeUser","currentOnlineUserIds","usersWhitelist","filter","localUserIds","remoteUserIds","serverSideEmitWithAck","Set","flat","r","startsWith","ur","split","pop","Logger"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../backend/src/applications/users/users.gateway.ts"],"sourcesContent":["import { BeforeApplicationShutdown, Logger } from '@nestjs/common'\nimport {\n MessageBody,\n OnGatewayConnection,\n OnGatewayDisconnect,\n OnGatewayInit,\n SubscribeMessage,\n WebSocketGateway,\n WebSocketServer\n} from '@nestjs/websockets'\nimport { Server } from 'socket.io'\nimport { JwtIdentityPayload } from '../../authentication/interfaces/jwt-payload.interface'\nimport { sleep } from '../../common/functions'\nimport { GetWsUser } from '../../infrastructure/websocket/decorators/web-socket-user.decorator'\nimport { AuthenticatedSocketIO } from '../../infrastructure/websocket/interfaces/auth-socket-io.interface'\nimport { getClientAddress } from '../../infrastructure/websocket/utils'\nimport { USER_ONLINE_STATUS } from './constants/user'\nimport { USER_ROOM_PREFIX, USERS_WS } from './constants/websocket'\nimport { EventChangeOnlineStatus, EventUpdateOnlineStatus, UserOnline } from './interfaces/websocket.interface'\nimport { UsersManager } from './services/users-manager.service'\n\n@WebSocketGateway()\nexport class WebSocketUsers implements BeforeApplicationShutdown, OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect {\n @WebSocketServer() server: Server\n private readonly internalEventOnlineUsers = 'listOnlineUsers'\n private readonly logger = new Logger(WebSocketUsers.name)\n private initialized = false\n private shuttingDown = false\n private readonly waitTime: number = 3000 //ms\n // to show local rooms : this.server.of('/').adapter.rooms\n\n constructor(private readonly usersManager: UsersManager) {}\n\n afterInit(server: Server): any {\n server.on(this.internalEventOnlineUsers, (cb) => cb(this.filterUserRooms(this.server.sockets.adapter.rooms.keys())))\n setTimeout(() => (this.initialized = true), this.waitTime)\n }\n\n beforeApplicationShutdown(_signal?: string) {\n this.shuttingDown = true\n }\n\n async handleConnection(socket: AuthenticatedSocketIO): Promise<void> {\n if (this.shuttingDown) return\n socket.join(`${USER_ROOM_PREFIX}${socket.user.id}`)\n this.sendOnlineUser(socket.user, parseInt((socket.handshake.query.onlineStatus as string) || '0')).catch((e: Error) =>\n this.logger.error({ tag: this.handleConnection.name, msg: `${e}` })\n )\n this.sendAllOnlineUsers(socket.user.id).catch((e: Error) => this.logger.error({ tag: this.handleConnection.name, msg: `${e}` }))\n this.logger.log({\n tag: this.handleConnection.name,\n msg: `Connected: *${socket.user.login}* (${socket.user.id}) [${socket.id}] ${getClientAddress(socket)} ${socket.handshake.headers['user-agent']}`\n })\n }\n\n async handleDisconnect(socket: AuthenticatedSocketIO): Promise<void> {\n if (this.shuttingDown) return\n socket.leave(`${USER_ROOM_PREFIX}${socket.user.id}`)\n this.sendOfflineUser(socket.user.id).catch((e: Error) => this.logger.error({ tag: this.handleDisconnect.name, msg: `${e}` }))\n this.logger.log({\n tag: this.handleDisconnect.name,\n msg: `Disconnected: *${socket.user.login}* (${socket.user.id}) [${socket.id}] ${getClientAddress(socket)} ${socket.handshake.headers['user-agent']}`\n })\n }\n\n @SubscribeMessage(USERS_WS.EVENTS.ONLINE_STATUS)\n setOnlineStatus(@GetWsUser() user: JwtIdentityPayload, @MessageBody() body: EventChangeOnlineStatus) {\n if (body.store) {\n // store in db\n this.usersManager.setOnlineStatus(user, body.status)\n }\n this.sendOnlineStatus(user.id, body.status).catch((e: Error) => this.logger.error({ tag: this.setOnlineStatus.name, msg: `${e}` }))\n }\n\n private sendMessageToUsers(userIds: number[], eventName: string, body: any) {\n if (userIds.length) {\n this.server.to(userIds.map((uid) => `${USER_ROOM_PREFIX}${uid}`)).emit(eventName, body)\n }\n }\n\n private async sendOnlineUser(user: JwtIdentityPayload, status: USER_ONLINE_STATUS) {\n if (!this.initialized) {\n // all online users will be propagated in the next seconds\n return\n }\n if (status === USER_ONLINE_STATUS.OFFLINE) {\n // user's online status is offline, do not send update to others\n return\n }\n const userIdsToNotify: number[] = await this.getOnlineUserIdsWhitelist(user.id)\n if (userIdsToNotify.length) {\n const onlineUser: UserOnline = {\n id: user.id,\n login: user.login,\n email: user.email,\n fullName: user.fullName,\n onlineStatus: status\n } satisfies UserOnline\n this.sendMessageToUsers(userIdsToNotify, USERS_WS.EVENTS.ONLINE_USER, onlineUser)\n }\n }\n\n private async sendOfflineUser(userId: number): Promise<void> {\n // avoid sending offline event on quick reconnects\n await sleep(this.waitTime)\n // check if user room is empty before send event\n if ((await this.getOnlineUserIds()).indexOf(userId) === -1) {\n this.sendOnlineStatus(userId, USER_ONLINE_STATUS.OFFLINE).catch((e: Error) =>\n this.logger.error({ tag: this.sendOfflineUser.name, msg: `${e}` })\n )\n }\n }\n\n private async sendAllOnlineUsers(toUserId: number) {\n if (!this.initialized) {\n // wait for all reconnections before propagating all online users\n await sleep(this.waitTime)\n }\n const onlineUserIds: number[] = await this.getOnlineUserIdsWhitelist(toUserId)\n if (onlineUserIds.length) {\n const onlineUsers: UserOnline[] = await this.usersManager.getOnlineUsers(onlineUserIds)\n if (onlineUsers.length) {\n this.sendMessageToUsers([toUserId], USERS_WS.EVENTS.ONLINE_USERS, onlineUsers)\n }\n }\n }\n\n private async sendOnlineStatus(userId: number, status: USER_ONLINE_STATUS) {\n const userIdsToNotify: number[] = await this.getOnlineUserIdsWhitelist(userId, false)\n if (userIdsToNotify.length) {\n const onlineStatus: EventUpdateOnlineStatus = { userId: userId, status: status }\n this.sendMessageToUsers(userIdsToNotify, USERS_WS.EVENTS.ONLINE_STATUS, onlineStatus)\n }\n }\n\n private async getOnlineUserIdsWhitelist(userId: number, excludeUser = true): Promise<number[]> {\n /* get online users visible for the user */\n const currentOnlineUserIds: number[] = await this.getOnlineUserIds()\n if (currentOnlineUserIds.length) {\n let usersWhitelist: number[] = await this.usersManager.usersWhitelist(userId)\n if (usersWhitelist) {\n if (excludeUser) {\n usersWhitelist = usersWhitelist.filter((uid) => uid !== userId)\n }\n return usersWhitelist.filter((uid) => currentOnlineUserIds.indexOf(uid) > -1)\n }\n }\n return []\n }\n\n private async getOnlineUserIds(): Promise<number[]> {\n /* get all online users from all workers */\n const localUserIds: number[] = this.filterUserRooms(this.server.sockets.adapter.rooms.keys())\n const remoteUserIds: number[][] = await this.server.serverSideEmitWithAck(this.internalEventOnlineUsers)\n return [...new Set([...localUserIds, ...remoteUserIds].flat())]\n }\n\n private filterUserRooms(rooms: Iterable<string>): number[] {\n return [...rooms].filter((r) => r.startsWith(USER_ROOM_PREFIX)).map((ur) => parseInt(ur.split(USER_ROOM_PREFIX).pop()))\n }\n}\n"],"names":["WebSocketUsers","afterInit","server","on","internalEventOnlineUsers","cb","filterUserRooms","sockets","adapter","rooms","keys","setTimeout","initialized","waitTime","beforeApplicationShutdown","_signal","shuttingDown","handleConnection","socket","join","USER_ROOM_PREFIX","user","id","sendOnlineUser","parseInt","handshake","query","onlineStatus","catch","e","logger","error","tag","name","msg","sendAllOnlineUsers","log","login","getClientAddress","headers","handleDisconnect","leave","sendOfflineUser","setOnlineStatus","body","store","usersManager","status","sendOnlineStatus","sendMessageToUsers","userIds","eventName","length","to","map","uid","emit","USER_ONLINE_STATUS","OFFLINE","userIdsToNotify","getOnlineUserIdsWhitelist","onlineUser","email","fullName","USERS_WS","EVENTS","ONLINE_USER","userId","sleep","getOnlineUserIds","indexOf","toUserId","onlineUserIds","onlineUsers","getOnlineUsers","ONLINE_USERS","ONLINE_STATUS","excludeUser","currentOnlineUserIds","usersWhitelist","filter","localUserIds","remoteUserIds","serverSideEmitWithAck","Set","flat","r","startsWith","ur","split","pop","Logger"],"mappings":"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"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../backend/src/applications/users/users.gateway.spec.ts"],"sourcesContent":["/*\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 { Test, TestingModule } from '@nestjs/testing'\nimport { UsersManager } from './services/users-manager.service'\nimport { WebSocketUsers } from './users.gateway'\n\ndescribe(WebSocketUsers.name, () => {\n let gateway: WebSocketUsers\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [WebSocketUsers, { provide: UsersManager, useValue: {} }]\n }).compile()\n\n gateway = module.get<WebSocketUsers>(WebSocketUsers)\n })\n\n it('should be defined', () => {\n expect(gateway).toBeDefined()\n })\n\n // describe('test', () => {\n // it('should return ok', async () => {\n // await expect(gateway.test('')).resolves.toBe('ok')\n // })\n // })\n})\n"],"names":["describe","WebSocketUsers","name","gateway","beforeAll","module","Test","createTestingModule","providers","provide","UsersManager","useValue","compile","get","it","expect","toBeDefined"],"mappings":"AAAA;;;;CAIC;;;;yBAEmC;qCACP;8BACE;AAE/BA,SAASC,4BAAc,CAACC,IAAI,EAAE;IAC5B,IAAIC;IAEJC,UAAU;QACR,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,WAAW;gBAACP,4BAAc;gBAAE;oBAAEQ,SAASC,iCAAY;oBAAEC,UAAU,CAAC;gBAAE;aAAE;QACtE,GAAGC,OAAO;QAEVT,UAAUE,OAAOQ,GAAG,CAAiBZ,4BAAc;IACrD;IAEAa,GAAG,qBAAqB;QACtBC,OAAOZ,SAASa,WAAW;IAC7B;AAEA,2BAA2B;AAC3B,yCAAyC;AACzC,yDAAyD;AACzD,OAAO;AACP,KAAK;AACP"}
1
+ {"version":3,"sources":["../../../../backend/src/applications/users/users.gateway.spec.ts"],"sourcesContent":["import { Test, TestingModule } from '@nestjs/testing'\nimport { UsersManager } from './services/users-manager.service'\nimport { WebSocketUsers } from './users.gateway'\n\ndescribe(WebSocketUsers.name, () => {\n let gateway: WebSocketUsers\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [WebSocketUsers, { provide: UsersManager, useValue: {} }]\n }).compile()\n\n gateway = module.get<WebSocketUsers>(WebSocketUsers)\n })\n\n it('should be defined', () => {\n expect(gateway).toBeDefined()\n })\n\n // describe('test', () => {\n // it('should return ok', async () => {\n // await expect(gateway.test('')).resolves.toBe('ok')\n // })\n // })\n})\n"],"names":["describe","WebSocketUsers","name","gateway","beforeAll","module","Test","createTestingModule","providers","provide","UsersManager","useValue","compile","get","it","expect","toBeDefined"],"mappings":";;;;yBAAoC;qCACP;8BACE;AAE/BA,SAASC,4BAAc,CAACC,IAAI,EAAE;IAC5B,IAAIC;IAEJC,UAAU;QACR,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,WAAW;gBAACP,4BAAc;gBAAE;oBAAEQ,SAASC,iCAAY;oBAAEC,UAAU,CAAC;gBAAE;aAAE;QACtE,GAAGC,OAAO;QAEVT,UAAUE,OAAOQ,GAAG,CAAiBZ,4BAAc;IACrD;IAEAa,GAAG,qBAAqB;QACtBC,OAAOZ,SAASa,WAAW;IAC7B;AAEA,2BAA2B;AAC3B,yCAAyC;AACzC,yDAAyD;AACzD,OAAO;AACP,KAAK;AACP"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../backend/src/applications/users/users.module.ts"],"sourcesContent":["/*\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 { Global, Module } from '@nestjs/common'\nimport { AdminUsersController } from './admin-users.controller'\nimport { UserPermissionsGuard } from './guards/permissions.guard'\nimport { UserRolesGuard } from './guards/roles.guard'\nimport { AdminUsersManager } from './services/admin-users-manager.service'\nimport { AdminUsersQueries } from './services/admin-users-queries.service'\nimport { UsersManager } from './services/users-manager.service'\nimport { UsersQueries } from './services/users-queries.service'\nimport { UsersController } from './users.controller'\nimport { WebSocketUsers } from './users.gateway'\n\n@Global()\n@Module({\n controllers: [UsersController, AdminUsersController],\n providers: [WebSocketUsers, UserRolesGuard, UserPermissionsGuard, UsersManager, UsersQueries, AdminUsersManager, AdminUsersQueries],\n exports: [UsersManager, UsersQueries, AdminUsersManager, AdminUsersQueries]\n})\nexport class UsersModule {}\n"],"names":["UsersModule","controllers","UsersController","AdminUsersController","providers","WebSocketUsers","UserRolesGuard","UserPermissionsGuard","UsersManager","UsersQueries","AdminUsersManager","AdminUsersQueries","exports"],"mappings":"AAAA;;;;CAIC;;;;+BAmBYA;;;eAAAA;;;wBAjBkB;sCACM;kCACA;4BACN;0CACG;0CACA;qCACL;qCACA;iCACG;8BACD;;;;;;;AAQxB,IAAA,AAAMA,cAAN,MAAMA;AAAa;;;;QAJxBC,aAAa;YAACC,gCAAe;YAAEC,0CAAoB;SAAC;QACpDC,WAAW;YAACC,4BAAc;YAAEC,0BAAc;YAAEC,sCAAoB;YAAEC,iCAAY;YAAEC,iCAAY;YAAEC,2CAAiB;YAAEC,2CAAiB;SAAC;QACnIC,SAAS;YAACJ,iCAAY;YAAEC,iCAAY;YAAEC,2CAAiB;YAAEC,2CAAiB;SAAC"}
1
+ {"version":3,"sources":["../../../../backend/src/applications/users/users.module.ts"],"sourcesContent":["import { Global, Module } from '@nestjs/common'\nimport { AdminUsersController } from './admin-users.controller'\nimport { UserPermissionsGuard } from './guards/permissions.guard'\nimport { UserRolesGuard } from './guards/roles.guard'\nimport { AdminUsersManager } from './services/admin-users-manager.service'\nimport { AdminUsersQueries } from './services/admin-users-queries.service'\nimport { UsersManager } from './services/users-manager.service'\nimport { UsersQueries } from './services/users-queries.service'\nimport { UsersController } from './users.controller'\nimport { WebSocketUsers } from './users.gateway'\n\n@Global()\n@Module({\n controllers: [UsersController, AdminUsersController],\n providers: [WebSocketUsers, UserRolesGuard, UserPermissionsGuard, UsersManager, UsersQueries, AdminUsersManager, AdminUsersQueries],\n exports: [UsersManager, UsersQueries, AdminUsersManager, AdminUsersQueries]\n})\nexport class UsersModule {}\n"],"names":["UsersModule","controllers","UsersController","AdminUsersController","providers","WebSocketUsers","UserRolesGuard","UserPermissionsGuard","UsersManager","UsersQueries","AdminUsersManager","AdminUsersQueries","exports"],"mappings":";;;;+BAiBaA;;;eAAAA;;;wBAjBkB;sCACM;kCACA;4BACN;0CACG;0CACA;qCACL;qCACA;iCACG;8BACD;;;;;;;AAQxB,IAAA,AAAMA,cAAN,MAAMA;AAAa;;;;QAJxBC,aAAa;YAACC,gCAAe;YAAEC,0CAAoB;SAAC;QACpDC,WAAW;YAACC,4BAAc;YAAEC,0BAAc;YAAEC,sCAAoB;YAAEC,iCAAY;YAAEC,iCAAY;YAAEC,2CAAiB;YAAEC,2CAAiB;SAAC;QACnIC,SAAS;YAACJ,iCAAY;YAAEC,iCAAY;YAAEC,2CAAiB;YAAEC,2CAAiB;SAAC"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/utils/avatar.ts"],"sourcesContent":["/*\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 path from 'node:path'\nimport { convertImageToBase64 } from '../../../common/image'\nimport { STATIC_ASSETS_PATH } from '../../../configuration/config.constants'\nimport { isPathExists } from '../../files/utils/files'\nimport { UserModel } from '../models/user.model'\n\nexport const USER_DEFAULT_AVATAR_FILE_PATH = path.join(STATIC_ASSETS_PATH, 'avatar.svg')\nexport const USER_AVATAR_FILE_NAME = 'avatar.png'\nexport const USER_AVATAR_MAX_UPLOAD_SIZE = 1024 * 1024 * 5 // 5MB\n\nexport async function getAvatarBase64(userLogin: string): Promise<string> {\n const userAvatarPath = path.join(UserModel.getHomePath(userLogin), USER_AVATAR_FILE_NAME)\n return convertImageToBase64((await isPathExists(userAvatarPath)) ? userAvatarPath : USER_DEFAULT_AVATAR_FILE_PATH)\n}\n"],"names":["USER_AVATAR_FILE_NAME","USER_AVATAR_MAX_UPLOAD_SIZE","USER_DEFAULT_AVATAR_FILE_PATH","getAvatarBase64","path","join","STATIC_ASSETS_PATH","userLogin","userAvatarPath","UserModel","getHomePath","convertImageToBase64","isPathExists"],"mappings":"AAAA;;;;CAIC;;;;;;;;;;;QASYA;eAAAA;;QACAC;eAAAA;;QAFAC;eAAAA;;QAISC;eAAAA;;;iEAVL;uBACoB;iCACF;uBACN;2BACH;;;;;;AAEnB,MAAMD,gCAAgCE,iBAAI,CAACC,IAAI,CAACC,mCAAkB,EAAE;AACpE,MAAMN,wBAAwB;AAC9B,MAAMC,8BAA8B,OAAO,OAAO,EAAE,MAAM;;AAE1D,eAAeE,gBAAgBI,SAAiB;IACrD,MAAMC,iBAAiBJ,iBAAI,CAACC,IAAI,CAACI,oBAAS,CAACC,WAAW,CAACH,YAAYP;IACnE,OAAOW,IAAAA,2BAAoB,EAAC,AAAC,MAAMC,IAAAA,mBAAY,EAACJ,kBAAmBA,iBAAiBN;AACtF"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/utils/avatar.ts"],"sourcesContent":["import path from 'node:path'\nimport { convertImageToBase64 } from '../../../common/image'\nimport { STATIC_ASSETS_PATH } from '../../../configuration/config.constants'\nimport { isPathExists } from '../../files/utils/files'\nimport { UserModel } from '../models/user.model'\n\nexport const USER_DEFAULT_AVATAR_FILE_PATH = path.join(STATIC_ASSETS_PATH, 'avatar.svg')\nexport const USER_AVATAR_FILE_NAME = 'avatar.png'\nexport const USER_AVATAR_MAX_UPLOAD_SIZE = 1024 * 1024 * 5 // 5MB\n\nexport async function getAvatarBase64(userLogin: string): Promise<string> {\n const userAvatarPath = path.join(UserModel.getHomePath(userLogin), USER_AVATAR_FILE_NAME)\n return convertImageToBase64((await isPathExists(userAvatarPath)) ? userAvatarPath : USER_DEFAULT_AVATAR_FILE_PATH)\n}\n"],"names":["USER_AVATAR_FILE_NAME","USER_AVATAR_MAX_UPLOAD_SIZE","USER_DEFAULT_AVATAR_FILE_PATH","getAvatarBase64","path","join","STATIC_ASSETS_PATH","userLogin","userAvatarPath","UserModel","getHomePath","convertImageToBase64","isPathExists"],"mappings":";;;;;;;;;;;QAOaA;eAAAA;;QACAC;eAAAA;;QAFAC;eAAAA;;QAISC;eAAAA;;;iEAVL;uBACoB;iCACF;uBACN;2BACH;;;;;;AAEnB,MAAMD,gCAAgCE,iBAAI,CAACC,IAAI,CAACC,mCAAkB,EAAE;AACpE,MAAMN,wBAAwB;AAC9B,MAAMC,8BAA8B,OAAO,OAAO,EAAE,MAAM;;AAE1D,eAAeE,gBAAgBI,SAAiB;IACrD,MAAMC,iBAAiBJ,iBAAI,CAACC,IAAI,CAACI,oBAAS,CAACC,WAAW,CAACH,YAAYP;IACnE,OAAOW,IAAAA,2BAAoB,EAAC,AAAC,MAAMC,IAAAA,mBAAY,EAACJ,kBAAmBA,iBAAiBN;AACtF"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/utils/test.ts"],"sourcesContent":["/*\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 { faker } from '@faker-js/faker'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { USER_PERMISSION, USER_ROLE } from '../constants/user'\nimport type { UserModel } from '../models/user.model'\n\nexport function generateUserTest(withId: boolean = true): Partial<UserModel> {\n return {\n ...(withId && { id: -faker.number.int() }),\n login: faker.internet.username(),\n email: faker.internet.email(),\n firstName: SERVER_NAME,\n lastName: 'Testing',\n role: USER_ROLE.USER,\n isActive: true,\n password: 'password',\n applications: Object.values(USER_PERMISSION)\n }\n}\n"],"names":["generateUserTest","withId","id","faker","number","int","login","internet","username","email","firstName","SERVER_NAME","lastName","role","USER_ROLE","USER","isActive","password","applications","Object","values","USER_PERMISSION"],"mappings":"AAAA;;;;CAIC;;;;+BAOeA;;;eAAAA;;;uBALM;wBACM;sBACe;AAGpC,SAASA,iBAAiBC,SAAkB,IAAI;IACrD,OAAO;QACL,GAAIA,UAAU;YAAEC,IAAI,CAACC,YAAK,CAACC,MAAM,CAACC,GAAG;QAAG,CAAC;QACzCC,OAAOH,YAAK,CAACI,QAAQ,CAACC,QAAQ;QAC9BC,OAAON,YAAK,CAACI,QAAQ,CAACE,KAAK;QAC3BC,WAAWC,mBAAW;QACtBC,UAAU;QACVC,MAAMC,eAAS,CAACC,IAAI;QACpBC,UAAU;QACVC,UAAU;QACVC,cAAcC,OAAOC,MAAM,CAACC,qBAAe;IAC7C;AACF"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/utils/test.ts"],"sourcesContent":["import { faker } from '@faker-js/faker'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { USER_PERMISSION, USER_ROLE } from '../constants/user'\nimport type { UserModel } from '../models/user.model'\n\nexport function generateUserTest(withId: boolean = true): Partial<UserModel> {\n return {\n ...(withId && { id: -faker.number.int() }),\n login: faker.internet.username(),\n email: faker.internet.email(),\n firstName: SERVER_NAME,\n lastName: 'Testing',\n role: USER_ROLE.USER,\n isActive: true,\n password: 'password',\n applications: Object.values(USER_PERMISSION)\n }\n}\n"],"names":["generateUserTest","withId","id","faker","number","int","login","internet","username","email","firstName","SERVER_NAME","lastName","role","USER_ROLE","USER","isActive","password","applications","Object","values","USER_PERMISSION"],"mappings":";;;;+BAKgBA;;;eAAAA;;;uBALM;wBACM;sBACe;AAGpC,SAASA,iBAAiBC,SAAkB,IAAI;IACrD,OAAO;QACL,GAAIA,UAAU;YAAEC,IAAI,CAACC,YAAK,CAACC,MAAM,CAACC,GAAG;QAAG,CAAC;QACzCC,OAAOH,YAAK,CAACI,QAAQ,CAACC,QAAQ;QAC9BC,OAAON,YAAK,CAACI,QAAQ,CAACE,KAAK;QAC3BC,WAAWC,mBAAW;QACtBC,UAAU;QACVC,MAAMC,eAAS,CAACC,IAAI;QACpBC,UAAU;QACVC,UAAU;QACVC,cAAcC,OAAOC,MAAM,CAACC,qBAAe;IAC7C;AACF"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/webdav/constants/routes.ts"],"sourcesContent":["/*\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 { SERVER_NAME } from '../../../common/shared'\nimport { SPACE_ALIAS, SPACE_REPOSITORY } from '../../spaces/constants/spaces'\n\nexport const WEBDAV_BASE_PATH = 'webdav'\n\nexport const WEBDAV_NS = {\n SERVER: SERVER_NAME,\n WEBDAV: WEBDAV_BASE_PATH,\n PERSONAL: SPACE_ALIAS.PERSONAL,\n SPACES: SPACE_ALIAS.SPACES,\n SHARES: SPACE_ALIAS.SHARES,\n TRASH: SPACE_ALIAS.TRASH\n} as const\n\nexport const WEBDAV_SPACES: Record<(typeof WEBDAV_NS)[keyof typeof WEBDAV_NS], { route: string; spaceRepository: string[] }> = {\n [WEBDAV_NS.SERVER]: { route: '/', spaceRepository: null },\n [WEBDAV_NS.WEBDAV]: { route: `/${WEBDAV_BASE_PATH}`, spaceRepository: null },\n [WEBDAV_NS.PERSONAL]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.PERSONAL}`, spaceRepository: [SPACE_REPOSITORY.FILES, SPACE_ALIAS.PERSONAL] },\n [WEBDAV_NS.SPACES]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.SPACES}`, spaceRepository: [SPACE_REPOSITORY.FILES] },\n [WEBDAV_NS.SHARES]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.SHARES}`, spaceRepository: [SPACE_REPOSITORY.SHARES] },\n [WEBDAV_NS.TRASH]: {\n route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.TRASH}`,\n spaceRepository: [SPACE_REPOSITORY.TRASH]\n }\n}\n"],"names":["WEBDAV_BASE_PATH","WEBDAV_NS","WEBDAV_SPACES","SERVER","SERVER_NAME","WEBDAV","PERSONAL","SPACE_ALIAS","SPACES","SHARES","TRASH","route","spaceRepository","SPACE_REPOSITORY","FILES"],"mappings":"AAAA;;;;CAIC;;;;;;;;;;;QAKYA;eAAAA;;QAEAC;eAAAA;;QASAC;eAAAA;;;wBAde;wBACkB;AAEvC,MAAMF,mBAAmB;AAEzB,MAAMC,YAAY;IACvBE,QAAQC,mBAAW;IACnBC,QAAQL;IACRM,UAAUC,mBAAW,CAACD,QAAQ;IAC9BE,QAAQD,mBAAW,CAACC,MAAM;IAC1BC,QAAQF,mBAAW,CAACE,MAAM;IAC1BC,OAAOH,mBAAW,CAACG,KAAK;AAC1B;AAEO,MAAMR,gBAAkH;IAC7H,CAACD,UAAUE,MAAM,CAAC,EAAE;QAAEQ,OAAO;QAAKC,iBAAiB;IAAK;IACxD,CAACX,UAAUI,MAAM,CAAC,EAAE;QAAEM,OAAO,CAAC,CAAC,EAAEX,kBAAkB;QAAEY,iBAAiB;IAAK;IAC3E,CAACX,UAAUK,QAAQ,CAAC,EAAE;QAAEK,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUK,QAAQ,EAAE;QAAEM,iBAAiB;YAACC,wBAAgB,CAACC,KAAK;YAAEP,mBAAW,CAACD,QAAQ;SAAC;IAAC;IAC7I,CAACL,UAAUO,MAAM,CAAC,EAAE;QAAEG,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUO,MAAM,EAAE;QAAEI,iBAAiB;YAACC,wBAAgB,CAACC,KAAK;SAAC;IAAC;IACnH,CAACb,UAAUQ,MAAM,CAAC,EAAE;QAAEE,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUQ,MAAM,EAAE;QAAEG,iBAAiB;YAACC,wBAAgB,CAACJ,MAAM;SAAC;IAAC;IACpH,CAACR,UAAUS,KAAK,CAAC,EAAE;QACjBC,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUS,KAAK,EAAE;QAChDE,iBAAiB;YAACC,wBAAgB,CAACH,KAAK;SAAC;IAC3C;AACF"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/webdav/constants/routes.ts"],"sourcesContent":["import { SERVER_NAME } from '../../../common/shared'\nimport { SPACE_ALIAS, SPACE_REPOSITORY } from '../../spaces/constants/spaces'\n\nexport const WEBDAV_BASE_PATH = 'webdav'\n\nexport const WEBDAV_NS = {\n SERVER: SERVER_NAME,\n WEBDAV: WEBDAV_BASE_PATH,\n PERSONAL: SPACE_ALIAS.PERSONAL,\n SPACES: SPACE_ALIAS.SPACES,\n SHARES: SPACE_ALIAS.SHARES,\n TRASH: SPACE_ALIAS.TRASH\n} as const\n\nexport const WEBDAV_SPACES: Record<(typeof WEBDAV_NS)[keyof typeof WEBDAV_NS], { route: string; spaceRepository: string[] }> = {\n [WEBDAV_NS.SERVER]: { route: '/', spaceRepository: null },\n [WEBDAV_NS.WEBDAV]: { route: `/${WEBDAV_BASE_PATH}`, spaceRepository: null },\n [WEBDAV_NS.PERSONAL]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.PERSONAL}`, spaceRepository: [SPACE_REPOSITORY.FILES, SPACE_ALIAS.PERSONAL] },\n [WEBDAV_NS.SPACES]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.SPACES}`, spaceRepository: [SPACE_REPOSITORY.FILES] },\n [WEBDAV_NS.SHARES]: { route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.SHARES}`, spaceRepository: [SPACE_REPOSITORY.SHARES] },\n [WEBDAV_NS.TRASH]: {\n route: `/${WEBDAV_BASE_PATH}/${WEBDAV_NS.TRASH}`,\n spaceRepository: [SPACE_REPOSITORY.TRASH]\n }\n}\n"],"names":["WEBDAV_BASE_PATH","WEBDAV_NS","WEBDAV_SPACES","SERVER","SERVER_NAME","WEBDAV","PERSONAL","SPACE_ALIAS","SPACES","SHARES","TRASH","route","spaceRepository","SPACE_REPOSITORY","FILES"],"mappings":";;;;;;;;;;;QAGaA;eAAAA;;QAEAC;eAAAA;;QASAC;eAAAA;;;wBAde;wBACkB;AAEvC,MAAMF,mBAAmB;AAEzB,MAAMC,YAAY;IACvBE,QAAQC,mBAAW;IACnBC,QAAQL;IACRM,UAAUC,mBAAW,CAACD,QAAQ;IAC9BE,QAAQD,mBAAW,CAACC,MAAM;IAC1BC,QAAQF,mBAAW,CAACE,MAAM;IAC1BC,OAAOH,mBAAW,CAACG,KAAK;AAC1B;AAEO,MAAMR,gBAAkH;IAC7H,CAACD,UAAUE,MAAM,CAAC,EAAE;QAAEQ,OAAO;QAAKC,iBAAiB;IAAK;IACxD,CAACX,UAAUI,MAAM,CAAC,EAAE;QAAEM,OAAO,CAAC,CAAC,EAAEX,kBAAkB;QAAEY,iBAAiB;IAAK;IAC3E,CAACX,UAAUK,QAAQ,CAAC,EAAE;QAAEK,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUK,QAAQ,EAAE;QAAEM,iBAAiB;YAACC,wBAAgB,CAACC,KAAK;YAAEP,mBAAW,CAACD,QAAQ;SAAC;IAAC;IAC7I,CAACL,UAAUO,MAAM,CAAC,EAAE;QAAEG,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUO,MAAM,EAAE;QAAEI,iBAAiB;YAACC,wBAAgB,CAACC,KAAK;SAAC;IAAC;IACnH,CAACb,UAAUQ,MAAM,CAAC,EAAE;QAAEE,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUQ,MAAM,EAAE;QAAEG,iBAAiB;YAACC,wBAAgB,CAACJ,MAAM;SAAC;IAAC;IACpH,CAACR,UAAUS,KAAK,CAAC,EAAE;QACjBC,OAAO,CAAC,CAAC,EAAEX,iBAAiB,CAAC,EAAEC,UAAUS,KAAK,EAAE;QAChDE,iBAAiB;YAACC,wBAAgB,CAACH,KAAK;SAAC;IAC3C;AACF"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/webdav/constants/webdav.ts"],"sourcesContent":["/*\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 { SERVER_NAME } from '../../../common/shared'\nimport { HTTP_STANDARD_METHOD, HTTP_WEBDAV_METHOD } from '../../applications.constants'\nimport { WEBDAV_BASE_PATH } from './routes'\n\nexport const REGEX_BASE_PATH = new RegExp(`^/?${WEBDAV_BASE_PATH}/`)\nexport const NS_DAV = 'DAV:'\nexport const NS_PREFIX = 'D'\nexport const LOCK_PREFIX = 'urn:uuid:'\nexport const XML_CONTENT_TYPE = 'application/xml; charset=utf-8'\nexport const HTML_CONTENT_TYPE = 'text/html; charset=utf-8'\nexport const WEBDAV_CONTENT_TYPES = ['application/xml', 'text/xml']\nexport const WEBDAV_APP_LOCK = 'WebDAV' as const\n\nexport const ALLOWED_WEBDAV_METHODS: string = [\n HTTP_STANDARD_METHOD.OPTIONS,\n HTTP_STANDARD_METHOD.HEAD,\n HTTP_STANDARD_METHOD.GET,\n HTTP_STANDARD_METHOD.PUT,\n HTTP_STANDARD_METHOD.DELETE,\n ...Object.values(HTTP_WEBDAV_METHOD)\n].join(', ')\n\nexport const ALLOW_EMPTY_BODY_METHODS: string[] = [HTTP_WEBDAV_METHOD.PROPFIND, HTTP_WEBDAV_METHOD.LOCK]\n\nexport const OPTIONS_HEADERS = {\n Server: SERVER_NAME,\n 'MS-Author-Via': 'DAV',\n DAV: '1,2',\n Allow: ALLOWED_WEBDAV_METHODS,\n 'Content-Type': HTML_CONTENT_TYPE,\n 'Content-Length': '0',\n 'Accept-Ranges': 'bytes'\n} as const\n\nexport const HEADER = {\n DEPTH: 'depth',\n IF: 'if',\n LOCK_TOKEN: 'lock-token',\n DESTINATION: 'destination',\n OVERWRITE: 'overwrite',\n TIMEOUT: 'timeout'\n} as const\n\nexport const LOCK_DISCOVERY_PROP = 'lockdiscovery'\nexport const STANDARD_PROPS = [\n 'creationdate',\n 'getcontenttype',\n 'resourcetype',\n 'getlastmodified',\n 'getcontentlength',\n 'displayname',\n 'getetag',\n 'supportedlock',\n LOCK_DISCOVERY_PROP\n]\n\nexport enum LOCK_SCOPE {\n EXCLUSIVE = 'exclusive',\n SHARED = 'shared'\n}\n\nexport enum DEPTH {\n INFINITY = 'infinity',\n RESOURCE = '0',\n MEMBERS = '1'\n}\n\nexport type LOCK_DEPTH = Omit<DEPTH, DEPTH.MEMBERS>\n\nexport enum PROPSTAT {\n ALLPROP = 'allprop',\n PROP = 'prop',\n PROPNAME = 'propname'\n}\n\nexport const PROPPATCH_PROP_UPDATE = 'propertyupdate'\nexport const PROPPATCH_METHOD = { SET: 'set', REMOVE: 'remove' }\nexport const PROPPATCH_MODIFIED_PROPS = ['getlastmodified', 'lastmodified', 'Win32LastModifiedTime']\nexport const PROPPATCH_SUPPORTED_PROPS = [...PROPPATCH_MODIFIED_PROPS, 'Win32CreationTime', 'Win32LastAccessTime', 'Win32FileAttributes']\n\nexport const PRECONDITION = {\n PROTECTED_PROPERTY: 'cannot-modify-protected-property',\n MISSING_LOCK_TOKEN: 'lock-token-submitted',\n LOCK_TOKEN_MISMATCH: 'lock-token-matches-request-uri',\n LOCK_CONFLICT: 'no-conflicting-lock',\n PROPFIND_FINITE_DEPTH: 'propfind-finite-depth'\n} as const\n"],"names":["ALLOWED_WEBDAV_METHODS","ALLOW_EMPTY_BODY_METHODS","DEPTH","HEADER","HTML_CONTENT_TYPE","LOCK_DISCOVERY_PROP","LOCK_PREFIX","LOCK_SCOPE","NS_DAV","NS_PREFIX","OPTIONS_HEADERS","PRECONDITION","PROPPATCH_METHOD","PROPPATCH_MODIFIED_PROPS","PROPPATCH_PROP_UPDATE","PROPPATCH_SUPPORTED_PROPS","PROPSTAT","REGEX_BASE_PATH","STANDARD_PROPS","WEBDAV_APP_LOCK","WEBDAV_CONTENT_TYPES","XML_CONTENT_TYPE","RegExp","WEBDAV_BASE_PATH","HTTP_STANDARD_METHOD","OPTIONS","HEAD","GET","PUT","DELETE","Object","values","HTTP_WEBDAV_METHOD","join","PROPFIND","LOCK","Server","SERVER_NAME","DAV","Allow","IF","LOCK_TOKEN","DESTINATION","OVERWRITE","TIMEOUT","SET","REMOVE","PROTECTED_PROPERTY","MISSING_LOCK_TOKEN","LOCK_TOKEN_MISMATCH","LOCK_CONFLICT","PROPFIND_FINITE_DEPTH"],"mappings":"AAAA;;;;CAIC;;;;;;;;;;;QAeYA;eAAAA;;QASAC;eAAAA;;QAuCDC;eAAAA;;QA3BCC;eAAAA;;QAzBAC;eAAAA;;QAkCAC;eAAAA;;QApCAC;eAAAA;;QAiDDC;eAAAA;;QAnDCC;eAAAA;;QACAC;eAAAA;;QAkBAC;eAAAA;;QAwDAC;eAAAA;;QAJAC;eAAAA;;QACAC;eAAAA;;QAFAC;eAAAA;;QAGAC;eAAAA;;QATDC;eAAAA;;QAjECC;eAAAA;;QAwCAC;eAAAA;;QAjCAC;eAAAA;;QADAC;eAAAA;;QAFAC;eAAAA;;;wBARe;uCAC6B;wBACxB;AAE1B,MAAMJ,kBAAkB,IAAIK,OAAO,CAAC,GAAG,EAAEC,wBAAgB,CAAC,CAAC,CAAC;AAC5D,MAAMf,SAAS;AACf,MAAMC,YAAY;AAClB,MAAMH,cAAc;AACpB,MAAMe,mBAAmB;AACzB,MAAMjB,oBAAoB;AAC1B,MAAMgB,uBAAuB;IAAC;IAAmB;CAAW;AAC5D,MAAMD,kBAAkB;AAExB,MAAMnB,yBAAiC;IAC5CwB,2CAAoB,CAACC,OAAO;IAC5BD,2CAAoB,CAACE,IAAI;IACzBF,2CAAoB,CAACG,GAAG;IACxBH,2CAAoB,CAACI,GAAG;IACxBJ,2CAAoB,CAACK,MAAM;OACxBC,OAAOC,MAAM,CAACC,yCAAkB;CACpC,CAACC,IAAI,CAAC;AAEA,MAAMhC,2BAAqC;IAAC+B,yCAAkB,CAACE,QAAQ;IAAEF,yCAAkB,CAACG,IAAI;CAAC;AAEjG,MAAMzB,kBAAkB;IAC7B0B,QAAQC,mBAAW;IACnB,iBAAiB;IACjBC,KAAK;IACLC,OAAOvC;IACP,gBAAgBI;IAChB,kBAAkB;IAClB,iBAAiB;AACnB;AAEO,MAAMD,SAAS;IACpBD,OAAO;IACPsC,IAAI;IACJC,YAAY;IACZC,aAAa;IACbC,WAAW;IACXC,SAAS;AACX;AAEO,MAAMvC,sBAAsB;AAC5B,MAAMa,iBAAiB;IAC5B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAb;CACD;AAEM,IAAA,AAAKE,oCAAAA;;;WAAAA;;AAKL,IAAA,AAAKL,+BAAAA;;;;WAAAA;;AAQL,IAAA,AAAKc,kCAAAA;;;;WAAAA;;AAML,MAAMF,wBAAwB;AAC9B,MAAMF,mBAAmB;IAAEiC,KAAK;IAAOC,QAAQ;AAAS;AACxD,MAAMjC,2BAA2B;IAAC;IAAmB;IAAgB;CAAwB;AAC7F,MAAME,4BAA4B;OAAIF;IAA0B;IAAqB;IAAuB;CAAsB;AAElI,MAAMF,eAAe;IAC1BoC,oBAAoB;IACpBC,oBAAoB;IACpBC,qBAAqB;IACrBC,eAAe;IACfC,uBAAuB;AACzB"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/webdav/constants/webdav.ts"],"sourcesContent":["import { SERVER_NAME } from '../../../common/shared'\nimport { HTTP_STANDARD_METHOD, HTTP_WEBDAV_METHOD } from '../../applications.constants'\nimport { WEBDAV_BASE_PATH } from './routes'\n\nexport const REGEX_BASE_PATH = new RegExp(`^/?${WEBDAV_BASE_PATH}/`)\nexport const NS_DAV = 'DAV:'\nexport const NS_PREFIX = 'D'\nexport const LOCK_PREFIX = 'urn:uuid:'\nexport const XML_CONTENT_TYPE = 'application/xml; charset=utf-8'\nexport const HTML_CONTENT_TYPE = 'text/html; charset=utf-8'\nexport const WEBDAV_CONTENT_TYPES = ['application/xml', 'text/xml']\nexport const WEBDAV_APP_LOCK = 'WebDAV' as const\n\nexport const ALLOWED_WEBDAV_METHODS: string = [\n HTTP_STANDARD_METHOD.OPTIONS,\n HTTP_STANDARD_METHOD.HEAD,\n HTTP_STANDARD_METHOD.GET,\n HTTP_STANDARD_METHOD.PUT,\n HTTP_STANDARD_METHOD.DELETE,\n ...Object.values(HTTP_WEBDAV_METHOD)\n].join(', ')\n\nexport const ALLOW_EMPTY_BODY_METHODS: string[] = [HTTP_WEBDAV_METHOD.PROPFIND, HTTP_WEBDAV_METHOD.LOCK]\n\nexport const OPTIONS_HEADERS = {\n Server: SERVER_NAME,\n 'MS-Author-Via': 'DAV',\n DAV: '1,2',\n Allow: ALLOWED_WEBDAV_METHODS,\n 'Content-Type': HTML_CONTENT_TYPE,\n 'Content-Length': '0',\n 'Accept-Ranges': 'bytes'\n} as const\n\nexport const HEADER = {\n DEPTH: 'depth',\n IF: 'if',\n LOCK_TOKEN: 'lock-token',\n DESTINATION: 'destination',\n OVERWRITE: 'overwrite',\n TIMEOUT: 'timeout'\n} as const\n\nexport const LOCK_DISCOVERY_PROP = 'lockdiscovery'\nexport const STANDARD_PROPS = [\n 'creationdate',\n 'getcontenttype',\n 'resourcetype',\n 'getlastmodified',\n 'getcontentlength',\n 'displayname',\n 'getetag',\n 'supportedlock',\n LOCK_DISCOVERY_PROP\n]\n\nexport enum LOCK_SCOPE {\n EXCLUSIVE = 'exclusive',\n SHARED = 'shared'\n}\n\nexport enum DEPTH {\n INFINITY = 'infinity',\n RESOURCE = '0',\n MEMBERS = '1'\n}\n\nexport type LOCK_DEPTH = Omit<DEPTH, DEPTH.MEMBERS>\n\nexport enum PROPSTAT {\n ALLPROP = 'allprop',\n PROP = 'prop',\n PROPNAME = 'propname'\n}\n\nexport const PROPPATCH_PROP_UPDATE = 'propertyupdate'\nexport const PROPPATCH_METHOD = { SET: 'set', REMOVE: 'remove' }\nexport const PROPPATCH_MODIFIED_PROPS = ['getlastmodified', 'lastmodified', 'Win32LastModifiedTime']\nexport const PROPPATCH_SUPPORTED_PROPS = [...PROPPATCH_MODIFIED_PROPS, 'Win32CreationTime', 'Win32LastAccessTime', 'Win32FileAttributes']\n\nexport const PRECONDITION = {\n PROTECTED_PROPERTY: 'cannot-modify-protected-property',\n MISSING_LOCK_TOKEN: 'lock-token-submitted',\n LOCK_TOKEN_MISMATCH: 'lock-token-matches-request-uri',\n LOCK_CONFLICT: 'no-conflicting-lock',\n PROPFIND_FINITE_DEPTH: 'propfind-finite-depth'\n} as const\n"],"names":["ALLOWED_WEBDAV_METHODS","ALLOW_EMPTY_BODY_METHODS","DEPTH","HEADER","HTML_CONTENT_TYPE","LOCK_DISCOVERY_PROP","LOCK_PREFIX","LOCK_SCOPE","NS_DAV","NS_PREFIX","OPTIONS_HEADERS","PRECONDITION","PROPPATCH_METHOD","PROPPATCH_MODIFIED_PROPS","PROPPATCH_PROP_UPDATE","PROPPATCH_SUPPORTED_PROPS","PROPSTAT","REGEX_BASE_PATH","STANDARD_PROPS","WEBDAV_APP_LOCK","WEBDAV_CONTENT_TYPES","XML_CONTENT_TYPE","RegExp","WEBDAV_BASE_PATH","HTTP_STANDARD_METHOD","OPTIONS","HEAD","GET","PUT","DELETE","Object","values","HTTP_WEBDAV_METHOD","join","PROPFIND","LOCK","Server","SERVER_NAME","DAV","Allow","IF","LOCK_TOKEN","DESTINATION","OVERWRITE","TIMEOUT","SET","REMOVE","PROTECTED_PROPERTY","MISSING_LOCK_TOKEN","LOCK_TOKEN_MISMATCH","LOCK_CONFLICT","PROPFIND_FINITE_DEPTH"],"mappings":";;;;;;;;;;;QAaaA;eAAAA;;QASAC;eAAAA;;QAuCDC;eAAAA;;QA3BCC;eAAAA;;QAzBAC;eAAAA;;QAkCAC;eAAAA;;QApCAC;eAAAA;;QAiDDC;eAAAA;;QAnDCC;eAAAA;;QACAC;eAAAA;;QAkBAC;eAAAA;;QAwDAC;eAAAA;;QAJAC;eAAAA;;QACAC;eAAAA;;QAFAC;eAAAA;;QAGAC;eAAAA;;QATDC;eAAAA;;QAjECC;eAAAA;;QAwCAC;eAAAA;;QAjCAC;eAAAA;;QADAC;eAAAA;;QAFAC;eAAAA;;;wBARe;uCAC6B;wBACxB;AAE1B,MAAMJ,kBAAkB,IAAIK,OAAO,CAAC,GAAG,EAAEC,wBAAgB,CAAC,CAAC,CAAC;AAC5D,MAAMf,SAAS;AACf,MAAMC,YAAY;AAClB,MAAMH,cAAc;AACpB,MAAMe,mBAAmB;AACzB,MAAMjB,oBAAoB;AAC1B,MAAMgB,uBAAuB;IAAC;IAAmB;CAAW;AAC5D,MAAMD,kBAAkB;AAExB,MAAMnB,yBAAiC;IAC5CwB,2CAAoB,CAACC,OAAO;IAC5BD,2CAAoB,CAACE,IAAI;IACzBF,2CAAoB,CAACG,GAAG;IACxBH,2CAAoB,CAACI,GAAG;IACxBJ,2CAAoB,CAACK,MAAM;OACxBC,OAAOC,MAAM,CAACC,yCAAkB;CACpC,CAACC,IAAI,CAAC;AAEA,MAAMhC,2BAAqC;IAAC+B,yCAAkB,CAACE,QAAQ;IAAEF,yCAAkB,CAACG,IAAI;CAAC;AAEjG,MAAMzB,kBAAkB;IAC7B0B,QAAQC,mBAAW;IACnB,iBAAiB;IACjBC,KAAK;IACLC,OAAOvC;IACP,gBAAgBI;IAChB,kBAAkB;IAClB,iBAAiB;AACnB;AAEO,MAAMD,SAAS;IACpBD,OAAO;IACPsC,IAAI;IACJC,YAAY;IACZC,aAAa;IACbC,WAAW;IACXC,SAAS;AACX;AAEO,MAAMvC,sBAAsB;AAC5B,MAAMa,iBAAiB;IAC5B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAb;CACD;AAEM,IAAA,AAAKE,oCAAAA;;;WAAAA;;AAKL,IAAA,AAAKL,+BAAAA;;;;WAAAA;;AAQL,IAAA,AAAKc,kCAAAA;;;;WAAAA;;AAML,MAAMF,wBAAwB;AAC9B,MAAMF,mBAAmB;IAAEiC,KAAK;IAAOC,QAAQ;AAAS;AACxD,MAAMjC,2BAA2B;IAAC;IAAmB;IAAgB;CAAwB;AAC7F,MAAME,4BAA4B;OAAIF;IAA0B;IAAqB;IAAuB;CAAsB;AAElI,MAAMF,eAAe;IAC1BoC,oBAAoB;IACpBC,oBAAoB;IACpBC,qBAAqB;IACrBC,eAAe;IACfC,uBAAuB;AACzB"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/webdav/decorators/if-header.decorator.ts"],"sourcesContent":["/*\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 { FastifyReply } from 'fastify'\nimport { FastifyDAVRequest } from '../interfaces/webdav.interface'\n\nexport function IfHeaderDecorator() {\n return (_target: any, _key?: string | symbol, descriptor?: TypedPropertyDescriptor<any>) => {\n const originalMethod = descriptor.value\n descriptor.value = async function (...args: any[]) {\n const req: FastifyDAVRequest = args[0]\n const res: FastifyReply = args[1]\n if (!(await this.evaluateIfHeaders(req, res))) {\n // if there is an error the response is generated inside the `evaluateIfHeaders` function\n return\n }\n return await originalMethod.apply(this, args)\n }\n }\n}\n"],"names":["IfHeaderDecorator","_target","_key","descriptor","originalMethod","value","args","req","res","evaluateIfHeaders","apply"],"mappings":"AAAA;;;;CAIC;;;;+BAKeA;;;eAAAA;;;AAAT,SAASA;IACd,OAAO,CAACC,SAAcC,MAAwBC;QAC5C,MAAMC,iBAAiBD,WAAWE,KAAK;QACvCF,WAAWE,KAAK,GAAG,eAAgB,GAAGC,IAAW;YAC/C,MAAMC,MAAyBD,IAAI,CAAC,EAAE;YACtC,MAAME,MAAoBF,IAAI,CAAC,EAAE;YACjC,IAAI,CAAE,MAAM,IAAI,CAACG,iBAAiB,CAACF,KAAKC,MAAO;gBAC7C,yFAAyF;gBACzF;YACF;YACA,OAAO,MAAMJ,eAAeM,KAAK,CAAC,IAAI,EAAEJ;QAC1C;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/webdav/decorators/if-header.decorator.ts"],"sourcesContent":["import { FastifyReply } from 'fastify'\nimport { FastifyDAVRequest } from '../interfaces/webdav.interface'\n\nexport function IfHeaderDecorator() {\n return (_target: any, _key?: string | symbol, descriptor?: TypedPropertyDescriptor<any>) => {\n const originalMethod = descriptor.value\n descriptor.value = async function (...args: any[]) {\n const req: FastifyDAVRequest = args[0]\n const res: FastifyReply = args[1]\n if (!(await this.evaluateIfHeaders(req, res))) {\n // if there is an error the response is generated inside the `evaluateIfHeaders` function\n return\n }\n return await originalMethod.apply(this, args)\n }\n }\n}\n"],"names":["IfHeaderDecorator","_target","_key","descriptor","originalMethod","value","args","req","res","evaluateIfHeaders","apply"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA;IACd,OAAO,CAACC,SAAcC,MAAwBC;QAC5C,MAAMC,iBAAiBD,WAAWE,KAAK;QACvCF,WAAWE,KAAK,GAAG,eAAgB,GAAGC,IAAW;YAC/C,MAAMC,MAAyBD,IAAI,CAAC,EAAE;YACtC,MAAME,MAAoBF,IAAI,CAAC,EAAE;YACjC,IAAI,CAAE,MAAM,IAAI,CAACG,iBAAiB,CAACF,KAAKC,MAAO;gBAC7C,yFAAyF;gBACzF;YACF;YACA,OAAO,MAAMJ,eAAeM,KAAK,CAAC,IAAI,EAAEJ;QAC1C;IACF;AACF"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/webdav/decorators/webdav-context.decorator.ts"],"sourcesContent":["/*\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 { applyDecorators, SetMetadata, UseFilters, UseGuards } from '@nestjs/common'\nimport { AuthBasicGuard } from '../../../authentication/guards/auth-basic.guard'\nimport { WebDAVExceptionsFilter } from '../filters/webdav.filter'\nimport { WebDAVProtocolGuard } from '../guards/webdav-protocol.guard'\n\nexport const WEB_DAV_CONTEXT = 'WebDAVContext'\nexport const WebDAVContext = () => SetMetadata(WEB_DAV_CONTEXT, true)\nexport const WebDAVEnvironment = () => {\n return applyDecorators(WebDAVContext(), UseGuards(AuthBasicGuard, WebDAVProtocolGuard), UseFilters(WebDAVExceptionsFilter))\n}\n"],"names":["WEB_DAV_CONTEXT","WebDAVContext","WebDAVEnvironment","SetMetadata","applyDecorators","UseGuards","AuthBasicGuard","WebDAVProtocolGuard","UseFilters","WebDAVExceptionsFilter"],"mappings":"AAAA;;;;CAIC;;;;;;;;;;;QAOYA;eAAAA;;QACAC;eAAAA;;QACAC;eAAAA;;;wBAPuD;gCACrC;8BACQ;qCACH;AAE7B,MAAMF,kBAAkB;AACxB,MAAMC,gBAAgB,IAAME,IAAAA,mBAAW,EAACH,iBAAiB;AACzD,MAAME,oBAAoB;IAC/B,OAAOE,IAAAA,uBAAe,EAACH,iBAAiBI,IAAAA,iBAAS,EAACC,8BAAc,EAAEC,wCAAmB,GAAGC,IAAAA,kBAAU,EAACC,oCAAsB;AAC3H"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/webdav/decorators/webdav-context.decorator.ts"],"sourcesContent":["import { applyDecorators, SetMetadata, UseFilters, UseGuards } from '@nestjs/common'\nimport { AuthBasicGuard } from '../../../authentication/guards/auth-basic.guard'\nimport { WebDAVExceptionsFilter } from '../filters/webdav.filter'\nimport { WebDAVProtocolGuard } from '../guards/webdav-protocol.guard'\n\nexport const WEB_DAV_CONTEXT = 'WebDAVContext'\nexport const WebDAVContext = () => SetMetadata(WEB_DAV_CONTEXT, true)\nexport const WebDAVEnvironment = () => {\n return applyDecorators(WebDAVContext(), UseGuards(AuthBasicGuard, WebDAVProtocolGuard), UseFilters(WebDAVExceptionsFilter))\n}\n"],"names":["WEB_DAV_CONTEXT","WebDAVContext","WebDAVEnvironment","SetMetadata","applyDecorators","UseGuards","AuthBasicGuard","WebDAVProtocolGuard","UseFilters","WebDAVExceptionsFilter"],"mappings":";;;;;;;;;;;QAKaA;eAAAA;;QACAC;eAAAA;;QACAC;eAAAA;;;wBAPuD;gCACrC;8BACQ;qCACH;AAE7B,MAAMF,kBAAkB;AACxB,MAAMC,gBAAgB,IAAME,IAAAA,mBAAW,EAACH,iBAAiB;AACzD,MAAME,oBAAoB;IAC/B,OAAOE,IAAAA,uBAAe,EAACH,iBAAiBI,IAAAA,iBAAS,EAACC,8BAAc,EAAEC,wCAAmB,GAAGC,IAAAA,kBAAU,EAACC,oCAAsB;AAC3H"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/webdav/filters/webdav.filter.ts"],"sourcesContent":["/*\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 { ArgumentsHost, Catch, ExceptionFilter, HttpException } from '@nestjs/common'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { XML_CONTENT_TYPE } from '../constants/webdav'\n\n@Catch(HttpException)\nexport class WebDAVExceptionsFilter implements ExceptionFilter {\n catch(exception: HttpException, host: ArgumentsHost) {\n const ctx = host.switchToHttp()\n const res = ctx.getResponse()\n const status = exception.getStatus()\n\n if (status === 401) {\n // req.authInfo from the AuthBasicGuard\n res.header('WWW-Authenticate', `Basic realm=\"${SERVER_NAME}\"`).status(status).send()\n } else {\n let response: any = exception.getResponse()\n if (typeof response === 'object' && response !== null) {\n response = response.message\n }\n res.type(XML_CONTENT_TYPE).status(status).send(response)\n }\n }\n}\n"],"names":["WebDAVExceptionsFilter","catch","exception","host","ctx","switchToHttp","res","getResponse","status","getStatus","header","SERVER_NAME","send","response","message","type","XML_CONTENT_TYPE"],"mappings":"AAAA;;;;CAIC;;;;+BAOYA;;;eAAAA;;;wBALwD;wBACzC;wBACK;;;;;;;AAG1B,IAAA,AAAMA,yBAAN,MAAMA;IACXC,MAAMC,SAAwB,EAAEC,IAAmB,EAAE;QACnD,MAAMC,MAAMD,KAAKE,YAAY;QAC7B,MAAMC,MAAMF,IAAIG,WAAW;QAC3B,MAAMC,SAASN,UAAUO,SAAS;QAElC,IAAID,WAAW,KAAK;YAClB,uCAAuC;YACvCF,IAAII,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAEC,mBAAW,CAAC,CAAC,CAAC,EAAEH,MAAM,CAACA,QAAQI,IAAI;QACpF,OAAO;YACL,IAAIC,WAAgBX,UAAUK,WAAW;YACzC,IAAI,OAAOM,aAAa,YAAYA,aAAa,MAAM;gBACrDA,WAAWA,SAASC,OAAO;YAC7B;YACAR,IAAIS,IAAI,CAACC,wBAAgB,EAAER,MAAM,CAACA,QAAQI,IAAI,CAACC;QACjD;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/webdav/filters/webdav.filter.ts"],"sourcesContent":["import { ArgumentsHost, Catch, ExceptionFilter, HttpException } from '@nestjs/common'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { XML_CONTENT_TYPE } from '../constants/webdav'\n\n@Catch(HttpException)\nexport class WebDAVExceptionsFilter implements ExceptionFilter {\n catch(exception: HttpException, host: ArgumentsHost) {\n const ctx = host.switchToHttp()\n const res = ctx.getResponse()\n const status = exception.getStatus()\n\n if (status === 401) {\n // req.authInfo from the AuthBasicGuard\n res.header('WWW-Authenticate', `Basic realm=\"${SERVER_NAME}\"`).status(status).send()\n } else {\n let response: any = exception.getResponse()\n if (typeof response === 'object' && response !== null) {\n response = response.message\n }\n res.type(XML_CONTENT_TYPE).status(status).send(response)\n }\n }\n}\n"],"names":["WebDAVExceptionsFilter","catch","exception","host","ctx","switchToHttp","res","getResponse","status","getStatus","header","SERVER_NAME","send","response","message","type","XML_CONTENT_TYPE"],"mappings":";;;;+BAKaA;;;eAAAA;;;wBALwD;wBACzC;wBACK;;;;;;;AAG1B,IAAA,AAAMA,yBAAN,MAAMA;IACXC,MAAMC,SAAwB,EAAEC,IAAmB,EAAE;QACnD,MAAMC,MAAMD,KAAKE,YAAY;QAC7B,MAAMC,MAAMF,IAAIG,WAAW;QAC3B,MAAMC,SAASN,UAAUO,SAAS;QAElC,IAAID,WAAW,KAAK;YAClB,uCAAuC;YACvCF,IAAII,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAEC,mBAAW,CAAC,CAAC,CAAC,EAAEH,MAAM,CAACA,QAAQI,IAAI;QACpF,OAAO;YACL,IAAIC,WAAgBX,UAAUK,WAAW;YACzC,IAAI,OAAOM,aAAa,YAAYA,aAAa,MAAM;gBACrDA,WAAWA,SAASC,OAAO;YAC7B;YACAR,IAAIS,IAAI,CAACC,wBAAgB,EAAER,MAAM,CAACA,QAAQI,IAAI,CAACC;QACjD;IACF;AACF"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/webdav/filters/webdav.filter.spec.ts"],"sourcesContent":["/*\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 */\nimport { ArgumentsHost, HttpException } from '@nestjs/common'\nimport { Test } from '@nestjs/testing'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { XML_CONTENT_TYPE } from '../constants/webdav'\nimport { WebDAVExceptionsFilter } from './webdav.filter'\n\ndescribe('WebDAVExceptionsFilter', () => {\n let filter: WebDAVExceptionsFilter\n\n const createMockResponse = () => {\n const res: any = {}\n res.header = jest.fn().mockReturnValue(res)\n res.type = jest.fn().mockReturnValue(res)\n res.status = jest.fn().mockReturnValue(res)\n res.send = jest.fn().mockReturnValue(res)\n return res\n }\n\n const createMockHost = (res: any): ArgumentsHost =>\n ({\n switchToHttp: () => ({\n getResponse: () => res\n })\n // Other methods not used by the filter\n }) as unknown as ArgumentsHost\n\n beforeEach(async () => {\n const moduleRef = await Test.createTestingModule({\n providers: [WebDAVExceptionsFilter]\n }).compile()\n\n filter = moduleRef.get(WebDAVExceptionsFilter)\n })\n\n afterEach(() => {\n jest.clearAllMocks()\n })\n\n it('should set WWW-Authenticate header and send empty body for 401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const exception = new HttpException('Unauthorized', 401)\n\n filter.catch(exception, host)\n\n expect(res.header).toHaveBeenCalledWith('WWW-Authenticate', `Basic realm=\"${SERVER_NAME}\"`)\n expect(res.status).toHaveBeenCalledWith(401)\n expect(res.type).not.toHaveBeenCalled()\n expect(res.send).toHaveBeenCalled()\n // Ensure no body is sent\n expect(res.send.mock.calls[0][0]).toBeUndefined()\n })\n\n it('should set XML content type and forward string response for non-401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const exception = new HttpException('Internal error', 500)\n\n filter.catch(exception, host)\n\n expect(res.type).toHaveBeenCalledWith(XML_CONTENT_TYPE)\n expect(res.status).toHaveBeenCalledWith(500)\n expect(res.send).toHaveBeenCalledWith('Internal error')\n expect(res.header).not.toHaveBeenCalled()\n })\n\n it('should extract \"message\" from object response and send it as XML for non-401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const payload = { message: '<error>Bad Request</error>' }\n const exception = new HttpException(payload, 400)\n\n filter.catch(exception, host)\n\n expect(res.type).toHaveBeenCalledWith(XML_CONTENT_TYPE)\n expect(res.status).toHaveBeenCalledWith(400)\n expect(res.send).toHaveBeenCalledWith(payload.message)\n expect(res.header).not.toHaveBeenCalled()\n })\n})\n"],"names":["describe","filter","createMockResponse","res","header","jest","fn","mockReturnValue","type","status","send","createMockHost","switchToHttp","getResponse","beforeEach","moduleRef","Test","createTestingModule","providers","WebDAVExceptionsFilter","compile","get","afterEach","clearAllMocks","it","host","exception","HttpException","catch","expect","toHaveBeenCalledWith","SERVER_NAME","not","toHaveBeenCalled","mock","calls","toBeUndefined","XML_CONTENT_TYPE","payload","message"],"mappings":"AAAA;;;;CAIC;;;;wBAC4C;yBACxB;wBACO;wBACK;8BACM;AAEvCA,SAAS,0BAA0B;IACjC,IAAIC;IAEJ,MAAMC,qBAAqB;QACzB,MAAMC,MAAW,CAAC;QAClBA,IAAIC,MAAM,GAAGC,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACvCA,IAAIK,IAAI,GAAGH,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACrCA,IAAIM,MAAM,GAAGJ,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACvCA,IAAIO,IAAI,GAAGL,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACrC,OAAOA;IACT;IAEA,MAAMQ,iBAAiB,CAACR,MACrB,CAAA;YACCS,cAAc,IAAO,CAAA;oBACnBC,aAAa,IAAMV;gBACrB,CAAA;QAEF,CAAA;IAEFW,WAAW;QACT,MAAMC,YAAY,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC/CC,WAAW;gBAACC,oCAAsB;aAAC;QACrC,GAAGC,OAAO;QAEVnB,SAASc,UAAUM,GAAG,CAACF,oCAAsB;IAC/C;IAEAG,UAAU;QACRjB,KAAKkB,aAAa;IACpB;IAEAC,GAAG,kEAAkE;QACnE,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMuB,YAAY,IAAIC,qBAAa,CAAC,gBAAgB;QAEpD1B,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIC,MAAM,EAAE0B,oBAAoB,CAAC,oBAAoB,CAAC,aAAa,EAAEC,mBAAW,CAAC,CAAC,CAAC;QAC1FF,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIK,IAAI,EAAEwB,GAAG,CAACC,gBAAgB;QACrCJ,OAAO1B,IAAIO,IAAI,EAAEuB,gBAAgB;QACjC,yBAAyB;QACzBJ,OAAO1B,IAAIO,IAAI,CAACwB,IAAI,CAACC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAEC,aAAa;IACjD;IAEAZ,GAAG,uEAAuE;QACxE,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMuB,YAAY,IAAIC,qBAAa,CAAC,kBAAkB;QAEtD1B,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIK,IAAI,EAAEsB,oBAAoB,CAACO,wBAAgB;QACtDR,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIO,IAAI,EAAEoB,oBAAoB,CAAC;QACtCD,OAAO1B,IAAIC,MAAM,EAAE4B,GAAG,CAACC,gBAAgB;IACzC;IAEAT,GAAG,gFAAgF;QACjF,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMmC,UAAU;YAAEC,SAAS;QAA6B;QACxD,MAAMb,YAAY,IAAIC,qBAAa,CAACW,SAAS;QAE7CrC,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIK,IAAI,EAAEsB,oBAAoB,CAACO,wBAAgB;QACtDR,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIO,IAAI,EAAEoB,oBAAoB,CAACQ,QAAQC,OAAO;QACrDV,OAAO1B,IAAIC,MAAM,EAAE4B,GAAG,CAACC,gBAAgB;IACzC;AACF"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/webdav/filters/webdav.filter.spec.ts"],"sourcesContent":["import { ArgumentsHost, HttpException } from '@nestjs/common'\nimport { Test } from '@nestjs/testing'\nimport { SERVER_NAME } from '../../../common/shared'\nimport { XML_CONTENT_TYPE } from '../constants/webdav'\nimport { WebDAVExceptionsFilter } from './webdav.filter'\n\ndescribe('WebDAVExceptionsFilter', () => {\n let filter: WebDAVExceptionsFilter\n\n const createMockResponse = () => {\n const res: any = {}\n res.header = jest.fn().mockReturnValue(res)\n res.type = jest.fn().mockReturnValue(res)\n res.status = jest.fn().mockReturnValue(res)\n res.send = jest.fn().mockReturnValue(res)\n return res\n }\n\n const createMockHost = (res: any): ArgumentsHost =>\n ({\n switchToHttp: () => ({\n getResponse: () => res\n })\n // Other methods not used by the filter\n }) as unknown as ArgumentsHost\n\n beforeEach(async () => {\n const moduleRef = await Test.createTestingModule({\n providers: [WebDAVExceptionsFilter]\n }).compile()\n\n filter = moduleRef.get(WebDAVExceptionsFilter)\n })\n\n afterEach(() => {\n jest.clearAllMocks()\n })\n\n it('should set WWW-Authenticate header and send empty body for 401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const exception = new HttpException('Unauthorized', 401)\n\n filter.catch(exception, host)\n\n expect(res.header).toHaveBeenCalledWith('WWW-Authenticate', `Basic realm=\"${SERVER_NAME}\"`)\n expect(res.status).toHaveBeenCalledWith(401)\n expect(res.type).not.toHaveBeenCalled()\n expect(res.send).toHaveBeenCalled()\n // Ensure no body is sent\n expect(res.send.mock.calls[0][0]).toBeUndefined()\n })\n\n it('should set XML content type and forward string response for non-401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const exception = new HttpException('Internal error', 500)\n\n filter.catch(exception, host)\n\n expect(res.type).toHaveBeenCalledWith(XML_CONTENT_TYPE)\n expect(res.status).toHaveBeenCalledWith(500)\n expect(res.send).toHaveBeenCalledWith('Internal error')\n expect(res.header).not.toHaveBeenCalled()\n })\n\n it('should extract \"message\" from object response and send it as XML for non-401', () => {\n const res = createMockResponse()\n const host = createMockHost(res)\n const payload = { message: '<error>Bad Request</error>' }\n const exception = new HttpException(payload, 400)\n\n filter.catch(exception, host)\n\n expect(res.type).toHaveBeenCalledWith(XML_CONTENT_TYPE)\n expect(res.status).toHaveBeenCalledWith(400)\n expect(res.send).toHaveBeenCalledWith(payload.message)\n expect(res.header).not.toHaveBeenCalled()\n })\n})\n"],"names":["describe","filter","createMockResponse","res","header","jest","fn","mockReturnValue","type","status","send","createMockHost","switchToHttp","getResponse","beforeEach","moduleRef","Test","createTestingModule","providers","WebDAVExceptionsFilter","compile","get","afterEach","clearAllMocks","it","host","exception","HttpException","catch","expect","toHaveBeenCalledWith","SERVER_NAME","not","toHaveBeenCalled","mock","calls","toBeUndefined","XML_CONTENT_TYPE","payload","message"],"mappings":";;;;wBAA6C;yBACxB;wBACO;wBACK;8BACM;AAEvCA,SAAS,0BAA0B;IACjC,IAAIC;IAEJ,MAAMC,qBAAqB;QACzB,MAAMC,MAAW,CAAC;QAClBA,IAAIC,MAAM,GAAGC,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACvCA,IAAIK,IAAI,GAAGH,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACrCA,IAAIM,MAAM,GAAGJ,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACvCA,IAAIO,IAAI,GAAGL,KAAKC,EAAE,GAAGC,eAAe,CAACJ;QACrC,OAAOA;IACT;IAEA,MAAMQ,iBAAiB,CAACR,MACrB,CAAA;YACCS,cAAc,IAAO,CAAA;oBACnBC,aAAa,IAAMV;gBACrB,CAAA;QAEF,CAAA;IAEFW,WAAW;QACT,MAAMC,YAAY,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC/CC,WAAW;gBAACC,oCAAsB;aAAC;QACrC,GAAGC,OAAO;QAEVnB,SAASc,UAAUM,GAAG,CAACF,oCAAsB;IAC/C;IAEAG,UAAU;QACRjB,KAAKkB,aAAa;IACpB;IAEAC,GAAG,kEAAkE;QACnE,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMuB,YAAY,IAAIC,qBAAa,CAAC,gBAAgB;QAEpD1B,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIC,MAAM,EAAE0B,oBAAoB,CAAC,oBAAoB,CAAC,aAAa,EAAEC,mBAAW,CAAC,CAAC,CAAC;QAC1FF,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIK,IAAI,EAAEwB,GAAG,CAACC,gBAAgB;QACrCJ,OAAO1B,IAAIO,IAAI,EAAEuB,gBAAgB;QACjC,yBAAyB;QACzBJ,OAAO1B,IAAIO,IAAI,CAACwB,IAAI,CAACC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAEC,aAAa;IACjD;IAEAZ,GAAG,uEAAuE;QACxE,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMuB,YAAY,IAAIC,qBAAa,CAAC,kBAAkB;QAEtD1B,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIK,IAAI,EAAEsB,oBAAoB,CAACO,wBAAgB;QACtDR,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIO,IAAI,EAAEoB,oBAAoB,CAAC;QACtCD,OAAO1B,IAAIC,MAAM,EAAE4B,GAAG,CAACC,gBAAgB;IACzC;IAEAT,GAAG,gFAAgF;QACjF,MAAMrB,MAAMD;QACZ,MAAMuB,OAAOd,eAAeR;QAC5B,MAAMmC,UAAU;YAAEC,SAAS;QAA6B;QACxD,MAAMb,YAAY,IAAIC,qBAAa,CAACW,SAAS;QAE7CrC,OAAO2B,KAAK,CAACF,WAAWD;QAExBI,OAAO1B,IAAIK,IAAI,EAAEsB,oBAAoB,CAACO,wBAAgB;QACtDR,OAAO1B,IAAIM,MAAM,EAAEqB,oBAAoB,CAAC;QACxCD,OAAO1B,IAAIO,IAAI,EAAEoB,oBAAoB,CAACQ,QAAQC,OAAO;QACrDV,OAAO1B,IAAIC,MAAM,EAAE4B,GAAG,CAACC,gBAAgB;IACzC;AACF"}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -63,7 +59,10 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
63
59
  }
64
60
  checkUserPermission(req) {
65
61
  if (req.method !== _applicationsconstants.HTTP_METHOD.OPTIONS && !req.user.havePermission(_user.USER_PERMISSION.WEBDAV)) {
66
- this.logger.warn(`does not have permission : ${_user.USER_PERMISSION.WEBDAV}`);
62
+ this.logger.warn({
63
+ tag: this.checkUserPermission.name,
64
+ msg: `does not have permission : ${_user.USER_PERMISSION.WEBDAV}`
65
+ });
67
66
  throw new _common.HttpException('Missing permission', _common.HttpStatus.FORBIDDEN);
68
67
  }
69
68
  }
@@ -95,16 +94,21 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
95
94
  } else {
96
95
  throw new _common.HttpException(`${valid.err.code} : ${valid.err.msg}`, _common.HttpStatus.BAD_REQUEST);
97
96
  }
98
- req.dav.httpVersion = `${req.protocol.toUpperCase()}/${req.raw['httpVersion']}`;
99
97
  req.dav.body = body;
100
98
  return true;
101
99
  }
102
100
  parseIfHeader(req) {
103
101
  // stores if headers, examine it later
104
102
  if (req.headers[_webdav.HEADER.IF]) {
105
- this.logger.verbose(`If header before : ${JSON.stringify(req.headers[_webdav.HEADER.IF])}`);
103
+ this.logger.verbose({
104
+ tag: this.parseIfHeader.name,
105
+ msg: `If header before : ${JSON.stringify(req.headers[_webdav.HEADER.IF])}`
106
+ });
106
107
  const ifHeaders = (0, _ifheader.parseIfHeader)(req.headers[_webdav.HEADER.IF]);
107
- this.logger.verbose(`If header after : ${JSON.stringify(ifHeaders)}`);
108
+ this.logger.verbose({
109
+ tag: this.parseIfHeader.name,
110
+ msg: `If header after : ${JSON.stringify(ifHeaders)}`
111
+ });
108
112
  if (ifHeaders.length) req.dav.ifHeaders = ifHeaders;
109
113
  }
110
114
  }
@@ -112,11 +116,20 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
112
116
  req.dav.depth = req.headers[_webdav.HEADER.DEPTH]?.toLowerCase();
113
117
  if (!req.dav.depth || req.dav.depth !== _webdav.DEPTH.MEMBERS && req.dav.depth !== _webdav.DEPTH.RESOURCE) {
114
118
  if (!req.dav.depth) {
115
- this.logger.warn('Missing propfind depth, default value 1 was set');
119
+ this.logger.warn({
120
+ tag: this.propfindMethod.name,
121
+ msg: 'Missing propfind depth, default value 1 was set'
122
+ });
116
123
  } else if (req.dav.depth === _webdav.DEPTH.INFINITY) {
117
- this.logger.warn('Infinite depth is disabled for security reasons, default value 1 was set');
124
+ this.logger.warn({
125
+ tag: this.propfindMethod.name,
126
+ msg: 'Infinite depth is disabled for security reasons, default value 1 was set'
127
+ });
118
128
  } else {
119
- this.logger.warn(`Invalid propfind depth header : ${req.dav.depth}, default value 1 was set`);
129
+ this.logger.warn({
130
+ tag: this.propfindMethod.name,
131
+ msg: `Invalid propfind depth header : ${req.dav.depth}, default value 1 was set`
132
+ });
120
133
  }
121
134
  req.dav.depth = _webdav.DEPTH.MEMBERS;
122
135
  }
@@ -129,7 +142,10 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
129
142
  }
130
143
  }
131
144
  if (!req.dav.propfindMode) {
132
- this.logger.warn(`Invalid propfind mode : ${JSON.stringify(Object.keys(req.dav.body.propfind))}`);
145
+ this.logger.warn({
146
+ tag: this.propfindMethod.name,
147
+ msg: `Invalid propfind mode : ${JSON.stringify(Object.keys(req.dav.body.propfind))}`
148
+ });
133
149
  throw new _common.HttpException('Invalid propfind mode', _common.HttpStatus.BAD_REQUEST);
134
150
  }
135
151
  } else {
@@ -145,7 +161,10 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
145
161
  req.dav.depth = (req.headers[_webdav.HEADER.DEPTH] || _webdav.DEPTH.RESOURCE).toLowerCase();
146
162
  this.parseBody(req);
147
163
  if (!req.dav.body || Object.keys(req.dav.body).indexOf(_webdav.PROPPATCH_PROP_UPDATE) === -1) {
148
- this.logger.debug(`'${_webdav.PROPPATCH_PROP_UPDATE}' is missing : ${JSON.stringify(req.dav.body)}`);
164
+ this.logger.debug({
165
+ tag: this.proppatchMethod.name,
166
+ msg: `'${_webdav.PROPPATCH_PROP_UPDATE}' is missing : ${JSON.stringify(req.dav.body)}`
167
+ });
149
168
  throw new _common.HttpException(`'${_webdav.PROPPATCH_PROP_UPDATE}' is missing`, _common.HttpStatus.BAD_REQUEST);
150
169
  }
151
170
  this.parseIfHeader(req);
@@ -164,7 +183,10 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
164
183
  const seconds = parseInt(timeoutSplit[timeoutSplit.length - 1], 10);
165
184
  req.dav.lock.timeout = seconds > _cache.CACHE_LOCK_DEFAULT_TTL ? _cache.CACHE_LOCK_DEFAULT_TTL : seconds;
166
185
  } catch (e) {
167
- this.logger.warn(`${this.lockMethod.name} - unable to set timeout, use the default value : ${e}`);
186
+ this.logger.warn({
187
+ tag: this.lockMethod.name,
188
+ msg: `unable to set timeout, use the default value : ${e}`
189
+ });
168
190
  req.dav.lock.timeout = _cache.CACHE_LOCK_DEFAULT_TTL;
169
191
  }
170
192
  }
@@ -172,17 +194,26 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
172
194
  this.parseBody(req);
173
195
  if (req.dav.body) {
174
196
  if (!req.dav.body.lockinfo) {
175
- this.logger.warn(`Missing lockinfo : ${JSON.stringify(req.dav.body)}`);
197
+ this.logger.warn({
198
+ tag: this.lockMethod.name,
199
+ msg: `Missing lockinfo : ${JSON.stringify(req.dav.body)}`
200
+ });
176
201
  throw new _common.HttpException('Missing lockinfo', _common.HttpStatus.BAD_REQUEST);
177
202
  }
178
203
  try {
179
204
  req.dav.lock.lockscope = Object.keys(req.dav.body.lockinfo.lockscope)[0];
180
205
  } catch (e) {
181
- this.logger.warn(`${this.parseBody.name} - invalid or undefined lockscope : ${JSON.stringify(req.dav.body.lockinfo)} : ${e}`);
206
+ this.logger.warn({
207
+ tag: this.lockMethod.name,
208
+ msg: `invalid or undefined lockscope : ${JSON.stringify(req.dav.body.lockinfo)} : ${e}`
209
+ });
182
210
  throw new _common.HttpException('Invalid or undefined lockscope', _common.HttpStatus.BAD_REQUEST);
183
211
  }
184
212
  if (Object.values(_webdav.LOCK_SCOPE).indexOf(req.dav.lock.lockscope) === -1) {
185
- this.logger.warn(`${this.parseBody.name} - invalid or undefined lockscope : ${JSON.stringify(req.dav.body.lockinfo)}`);
213
+ this.logger.warn({
214
+ tag: this.lockMethod.name,
215
+ msg: `invalid or undefined lockscope : ${JSON.stringify(req.dav.body.lockinfo)}`
216
+ });
186
217
  throw new _common.HttpException('Invalid or undefined lockscope', _common.HttpStatus.BAD_REQUEST);
187
218
  }
188
219
  if (req.dav.body.lockinfo.owner) {
@@ -234,9 +265,12 @@ let WebDAVProtocolGuard = class WebDAVProtocolGuard {
234
265
  if (!req.headers[_webdav.HEADER.DESTINATION]) {
235
266
  throw new _common.HttpException(`Missing ${_webdav.HEADER.DESTINATION} header`, _common.HttpStatus.BAD_REQUEST);
236
267
  }
237
- const destination = (0, _shared.decodeUrl)((0, _functions.urlToPath)(req.headers[_webdav.HEADER.DESTINATION]));
268
+ const destination = (0, _functions.urlToPath)(req.headers[_webdav.HEADER.DESTINATION]);
238
269
  if (!_webdav.REGEX_BASE_PATH.test(destination)) {
239
- this.logger.warn(`The destination does not match the webdav base path : ${destination}`);
270
+ this.logger.warn({
271
+ tag: this.copyMoveMethod.name,
272
+ msg: `The destination does not match the webdav base path : ${destination}`
273
+ });
240
274
  throw new _common.HttpException('The destination does not match', _common.HttpStatus.BAD_REQUEST);
241
275
  }
242
276
  req.dav.depth = (req.headers[_webdav.HEADER.DEPTH] || _webdav.DEPTH.INFINITY).toLowerCase();