@sync-in/server 1.11.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1040) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/LICENSE +1 -1
  3. package/README.md +3 -11
  4. package/environment/environment.dist.min.yaml +1 -1
  5. package/environment/environment.dist.yaml +173 -28
  6. package/package.json +17 -16
  7. package/server/app.bootstrap.js +1 -5
  8. package/server/app.bootstrap.js.map +1 -1
  9. package/server/app.constants.js +1 -5
  10. package/server/app.constants.js.map +1 -1
  11. package/server/app.e2e-spec.js +1 -5
  12. package/server/app.e2e-spec.js.map +1 -1
  13. package/server/app.functions.js +1 -5
  14. package/server/app.functions.js.map +1 -1
  15. package/server/app.module.js +1 -5
  16. package/server/app.module.js.map +1 -1
  17. package/server/app.service.js +1 -5
  18. package/server/app.service.js.map +1 -1
  19. package/server/app.service.spec.js +2 -6
  20. package/server/app.service.spec.js.map +1 -1
  21. package/server/applications/admin/admin.module.js +1 -5
  22. package/server/applications/admin/admin.module.js.map +1 -1
  23. package/server/applications/admin/constants/routes.js +1 -5
  24. package/server/applications/admin/constants/routes.js.map +1 -1
  25. package/server/applications/admin/interfaces/check-update.interfaces.js +1 -5
  26. package/server/applications/admin/interfaces/check-update.interfaces.js.map +1 -1
  27. package/server/applications/admin/services/admin-scheduler.service.js +1 -5
  28. package/server/applications/admin/services/admin-scheduler.service.js.map +1 -1
  29. package/server/applications/admin/services/admin.service.js +13 -8
  30. package/server/applications/admin/services/admin.service.js.map +1 -1
  31. package/server/applications/admin/services/admin.service.spec.js +1 -5
  32. package/server/applications/admin/services/admin.service.spec.js.map +1 -1
  33. package/server/applications/admin/utils/check-update.js +1 -5
  34. package/server/applications/admin/utils/check-update.js.map +1 -1
  35. package/server/applications/applications.config.js +1 -5
  36. package/server/applications/applications.config.js.map +1 -1
  37. package/server/applications/applications.constants.js +5 -5
  38. package/server/applications/applications.constants.js.map +1 -1
  39. package/server/applications/applications.module.js +1 -5
  40. package/server/applications/applications.module.js.map +1 -1
  41. package/server/applications/comments/comments.controller.js +1 -5
  42. package/server/applications/comments/comments.controller.js.map +1 -1
  43. package/server/applications/comments/comments.controller.spec.js +1 -5
  44. package/server/applications/comments/comments.controller.spec.js.map +1 -1
  45. package/server/applications/comments/comments.module.js +1 -5
  46. package/server/applications/comments/comments.module.js.map +1 -1
  47. package/server/applications/comments/constants/routes.js +1 -5
  48. package/server/applications/comments/constants/routes.js.map +1 -1
  49. package/server/applications/comments/dto/comment.dto.js +1 -5
  50. package/server/applications/comments/dto/comment.dto.js.map +1 -1
  51. package/server/applications/comments/interfaces/comment-recent.interface.js +1 -5
  52. package/server/applications/comments/interfaces/comment-recent.interface.js.map +1 -1
  53. package/server/applications/comments/schemas/comment.interface.js +1 -5
  54. package/server/applications/comments/schemas/comment.interface.js.map +1 -1
  55. package/server/applications/comments/schemas/comments.schema.js +1 -5
  56. package/server/applications/comments/schemas/comments.schema.js.map +1 -1
  57. package/server/applications/comments/services/comments-manager.service.js +9 -7
  58. package/server/applications/comments/services/comments-manager.service.js.map +1 -1
  59. package/server/applications/comments/services/comments-manager.service.spec.js +10 -8
  60. package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -1
  61. package/server/applications/comments/services/comments-queries.service.js +1 -5
  62. package/server/applications/comments/services/comments-queries.service.js.map +1 -1
  63. package/server/applications/files/adapters/files-indexer-mysql.service.js +29 -12
  64. package/server/applications/files/adapters/files-indexer-mysql.service.js.map +1 -1
  65. package/server/applications/files/adapters/files-indexer-mysql.service.spec.js +1 -5
  66. package/server/applications/files/adapters/files-indexer-mysql.service.spec.js.map +1 -1
  67. package/server/applications/files/constants/cache.js +1 -5
  68. package/server/applications/files/constants/cache.js.map +1 -1
  69. package/server/applications/files/constants/compress.js +1 -5
  70. package/server/applications/files/constants/compress.js.map +1 -1
  71. package/server/applications/files/constants/files.js +1 -5
  72. package/server/applications/files/constants/files.js.map +1 -1
  73. package/server/applications/files/constants/indexing.js +1 -5
  74. package/server/applications/files/constants/indexing.js.map +1 -1
  75. package/server/applications/files/constants/operations.js +1 -5
  76. package/server/applications/files/constants/operations.js.map +1 -1
  77. package/server/applications/files/constants/routes.js +1 -5
  78. package/server/applications/files/constants/routes.js.map +1 -1
  79. package/server/applications/files/constants/samples.js +1 -5
  80. package/server/applications/files/constants/samples.js.map +1 -1
  81. package/server/applications/files/dto/file-operations.dto.js +1 -5
  82. package/server/applications/files/dto/file-operations.dto.js.map +1 -1
  83. package/server/applications/files/events/file-task-event.js +1 -5
  84. package/server/applications/files/events/file-task-event.js.map +1 -1
  85. package/server/applications/files/files-tasks.controller.js +1 -5
  86. package/server/applications/files/files-tasks.controller.js.map +1 -1
  87. package/server/applications/files/files-tasks.controller.spec.js +1 -5
  88. package/server/applications/files/files-tasks.controller.spec.js.map +1 -1
  89. package/server/applications/files/files.config.js +1 -5
  90. package/server/applications/files/files.config.js.map +1 -1
  91. package/server/applications/files/files.controller.js +1 -5
  92. package/server/applications/files/files.controller.js.map +1 -1
  93. package/server/applications/files/files.controller.spec.js +1 -5
  94. package/server/applications/files/files.controller.spec.js.map +1 -1
  95. package/server/applications/files/files.module.js +1 -5
  96. package/server/applications/files/files.module.js.map +1 -1
  97. package/server/applications/files/interfaces/file-db-props.interface.js +1 -5
  98. package/server/applications/files/interfaces/file-db-props.interface.js.map +1 -1
  99. package/server/applications/files/interfaces/file-lock.interface.js +1 -5
  100. package/server/applications/files/interfaces/file-lock.interface.js.map +1 -1
  101. package/server/applications/files/interfaces/file-parse-index.js +1 -5
  102. package/server/applications/files/interfaces/file-parse-index.js.map +1 -1
  103. package/server/applications/files/interfaces/file-props.interface.js +1 -5
  104. package/server/applications/files/interfaces/file-props.interface.js.map +1 -1
  105. package/server/applications/files/interfaces/file-recent-location.interface.js +1 -5
  106. package/server/applications/files/interfaces/file-recent-location.interface.js.map +1 -1
  107. package/server/applications/files/interfaces/file-space.interface.js +1 -5
  108. package/server/applications/files/interfaces/file-space.interface.js.map +1 -1
  109. package/server/applications/files/interfaces/file-tree.interface.js +1 -5
  110. package/server/applications/files/interfaces/file-tree.interface.js.map +1 -1
  111. package/server/applications/files/models/file-error.js +1 -5
  112. package/server/applications/files/models/file-error.js.map +1 -1
  113. package/server/applications/files/models/file-lock-error.js +1 -5
  114. package/server/applications/files/models/file-lock-error.js.map +1 -1
  115. package/server/applications/files/models/file-task.js +1 -5
  116. package/server/applications/files/models/file-task.js.map +1 -1
  117. package/server/applications/files/models/files-indexer.js +1 -5
  118. package/server/applications/files/models/files-indexer.js.map +1 -1
  119. package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js +1 -5
  120. package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js.map +1 -1
  121. package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js +21 -10
  122. package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js.map +1 -1
  123. package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js +1 -5
  124. package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js.map +1 -1
  125. package/server/applications/files/modules/collabora-online/collabora-online.config.js +1 -5
  126. package/server/applications/files/modules/collabora-online/collabora-online.config.js.map +1 -1
  127. package/server/applications/files/modules/collabora-online/collabora-online.constants.js +1 -5
  128. package/server/applications/files/modules/collabora-online/collabora-online.constants.js.map +1 -1
  129. package/server/applications/files/modules/collabora-online/collabora-online.controller.js +1 -5
  130. package/server/applications/files/modules/collabora-online/collabora-online.controller.js.map +1 -1
  131. package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js +1 -5
  132. package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js.map +1 -1
  133. package/server/applications/files/modules/collabora-online/collabora-online.dtos.js +1 -5
  134. package/server/applications/files/modules/collabora-online/collabora-online.dtos.js.map +1 -1
  135. package/server/applications/files/modules/collabora-online/collabora-online.guard.js +1 -5
  136. package/server/applications/files/modules/collabora-online/collabora-online.guard.js.map +1 -1
  137. package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js +1 -5
  138. package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js.map +1 -1
  139. package/server/applications/files/modules/collabora-online/collabora-online.interface.js +1 -5
  140. package/server/applications/files/modules/collabora-online/collabora-online.interface.js.map +1 -1
  141. package/server/applications/files/modules/collabora-online/collabora-online.module.js +1 -5
  142. package/server/applications/files/modules/collabora-online/collabora-online.module.js.map +1 -1
  143. package/server/applications/files/modules/collabora-online/collabora-online.routes.js +1 -5
  144. package/server/applications/files/modules/collabora-online/collabora-online.routes.js.map +1 -1
  145. package/server/applications/files/modules/collabora-online/collabora-online.strategy.js +1 -5
  146. package/server/applications/files/modules/collabora-online/collabora-online.strategy.js.map +1 -1
  147. package/server/applications/files/modules/collabora-online/collabora-online.utils.js +1 -5
  148. package/server/applications/files/modules/collabora-online/collabora-online.utils.js.map +1 -1
  149. package/server/applications/files/modules/file-editor-providers.interface.js +6 -0
  150. package/server/applications/files/modules/file-editor-providers.interface.js.map +1 -0
  151. package/server/applications/files/modules/only-office/only-office-environment.decorator.js +1 -5
  152. package/server/applications/files/modules/only-office/only-office-environment.decorator.js.map +1 -1
  153. package/server/applications/files/modules/only-office/only-office-manager.service.js +57 -19
  154. package/server/applications/files/modules/only-office/only-office-manager.service.js.map +1 -1
  155. package/server/applications/files/modules/only-office/only-office-manager.service.spec.js +1 -5
  156. package/server/applications/files/modules/only-office/only-office-manager.service.spec.js.map +1 -1
  157. package/server/applications/files/modules/only-office/only-office.config.js +1 -5
  158. package/server/applications/files/modules/only-office/only-office.config.js.map +1 -1
  159. package/server/applications/files/modules/only-office/only-office.constants.js +1 -5
  160. package/server/applications/files/modules/only-office/only-office.constants.js.map +1 -1
  161. package/server/applications/files/modules/only-office/only-office.controller.js +1 -5
  162. package/server/applications/files/modules/only-office/only-office.controller.js.map +1 -1
  163. package/server/applications/files/modules/only-office/only-office.controller.spec.js +1 -5
  164. package/server/applications/files/modules/only-office/only-office.controller.spec.js.map +1 -1
  165. package/server/applications/files/modules/only-office/only-office.dtos.js +1 -5
  166. package/server/applications/files/modules/only-office/only-office.dtos.js.map +1 -1
  167. package/server/applications/files/modules/only-office/only-office.guard.js +1 -5
  168. package/server/applications/files/modules/only-office/only-office.guard.js.map +1 -1
  169. package/server/applications/files/modules/only-office/only-office.guard.spec.js +1 -5
  170. package/server/applications/files/modules/only-office/only-office.guard.spec.js.map +1 -1
  171. package/server/applications/files/modules/only-office/only-office.interface.js +1 -5
  172. package/server/applications/files/modules/only-office/only-office.interface.js.map +1 -1
  173. package/server/applications/files/modules/only-office/only-office.module.js +1 -5
  174. package/server/applications/files/modules/only-office/only-office.module.js.map +1 -1
  175. package/server/applications/files/modules/only-office/only-office.routes.js +1 -5
  176. package/server/applications/files/modules/only-office/only-office.routes.js.map +1 -1
  177. package/server/applications/files/modules/only-office/only-office.strategy.js +1 -5
  178. package/server/applications/files/modules/only-office/only-office.strategy.js.map +1 -1
  179. package/server/applications/files/schemas/file-content.interface.js +1 -5
  180. package/server/applications/files/schemas/file-content.interface.js.map +1 -1
  181. package/server/applications/files/schemas/file-recent.interface.js +1 -5
  182. package/server/applications/files/schemas/file-recent.interface.js.map +1 -1
  183. package/server/applications/files/schemas/file.interface.js +1 -5
  184. package/server/applications/files/schemas/file.interface.js.map +1 -1
  185. package/server/applications/files/schemas/files-content.schema.js +1 -5
  186. package/server/applications/files/schemas/files-content.schema.js.map +1 -1
  187. package/server/applications/files/schemas/files-recents.schema.js +1 -5
  188. package/server/applications/files/schemas/files-recents.schema.js.map +1 -1
  189. package/server/applications/files/schemas/files.schema.js +1 -5
  190. package/server/applications/files/schemas/files.schema.js.map +1 -1
  191. package/server/applications/files/services/files-content-manager.service.js +45 -16
  192. package/server/applications/files/services/files-content-manager.service.js.map +1 -1
  193. package/server/applications/files/services/files-lock-manager.service.js +53 -18
  194. package/server/applications/files/services/files-lock-manager.service.js.map +1 -1
  195. package/server/applications/files/services/files-lock-manager.service.spec.js +1 -5
  196. package/server/applications/files/services/files-lock-manager.service.spec.js.map +1 -1
  197. package/server/applications/files/services/files-manager.service.js +77 -24
  198. package/server/applications/files/services/files-manager.service.js.map +1 -1
  199. package/server/applications/files/services/files-manager.service.spec.js +1 -5
  200. package/server/applications/files/services/files-manager.service.spec.js.map +1 -1
  201. package/server/applications/files/services/files-methods.service.js +5 -6
  202. package/server/applications/files/services/files-methods.service.js.map +1 -1
  203. package/server/applications/files/services/files-methods.service.spec.js +1 -5
  204. package/server/applications/files/services/files-methods.service.spec.js.map +1 -1
  205. package/server/applications/files/services/files-parser.service.js +13 -8
  206. package/server/applications/files/services/files-parser.service.js.map +1 -1
  207. package/server/applications/files/services/files-parser.service.spec.js +1 -5
  208. package/server/applications/files/services/files-parser.service.spec.js.map +1 -1
  209. package/server/applications/files/services/files-queries.service.js +29 -12
  210. package/server/applications/files/services/files-queries.service.js.map +1 -1
  211. package/server/applications/files/services/files-recents.service.js +1 -5
  212. package/server/applications/files/services/files-recents.service.js.map +1 -1
  213. package/server/applications/files/services/files-recents.service.spec.js +1 -5
  214. package/server/applications/files/services/files-recents.service.spec.js.map +1 -1
  215. package/server/applications/files/services/files-scheduler.service.js +77 -24
  216. package/server/applications/files/services/files-scheduler.service.js.map +1 -1
  217. package/server/applications/files/services/files-search-manager.service.js +9 -7
  218. package/server/applications/files/services/files-search-manager.service.js.map +1 -1
  219. package/server/applications/files/services/files-search-manager.service.spec.js +1 -5
  220. package/server/applications/files/services/files-search-manager.service.spec.js.map +1 -1
  221. package/server/applications/files/services/files-tasks-manager.service.js +77 -24
  222. package/server/applications/files/services/files-tasks-manager.service.js.map +1 -1
  223. package/server/applications/files/services/files-tasks-manager.service.spec.js +1 -5
  224. package/server/applications/files/services/files-tasks-manager.service.spec.js.map +1 -1
  225. package/server/applications/files/utils/doc-textify/adapters/excel.js +1 -5
  226. package/server/applications/files/utils/doc-textify/adapters/excel.js.map +1 -1
  227. package/server/applications/files/utils/doc-textify/adapters/html.js +1 -5
  228. package/server/applications/files/utils/doc-textify/adapters/html.js.map +1 -1
  229. package/server/applications/files/utils/doc-textify/adapters/open-office.js +1 -5
  230. package/server/applications/files/utils/doc-textify/adapters/open-office.js.map +1 -1
  231. package/server/applications/files/utils/doc-textify/adapters/pdf.js +1 -5
  232. package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -1
  233. package/server/applications/files/utils/doc-textify/adapters/power-point.js +1 -5
  234. package/server/applications/files/utils/doc-textify/adapters/power-point.js.map +1 -1
  235. package/server/applications/files/utils/doc-textify/adapters/text.js +1 -5
  236. package/server/applications/files/utils/doc-textify/adapters/text.js.map +1 -1
  237. package/server/applications/files/utils/doc-textify/adapters/word.js +1 -5
  238. package/server/applications/files/utils/doc-textify/adapters/word.js.map +1 -1
  239. package/server/applications/files/utils/doc-textify/doc-textify.js +1 -5
  240. package/server/applications/files/utils/doc-textify/doc-textify.js.map +1 -1
  241. package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js +1 -5
  242. package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js.map +1 -1
  243. package/server/applications/files/utils/doc-textify/utils/clean.js +1 -5
  244. package/server/applications/files/utils/doc-textify/utils/clean.js.map +1 -1
  245. package/server/applications/files/utils/files-search.js +1 -5
  246. package/server/applications/files/utils/files-search.js.map +1 -1
  247. package/server/applications/files/utils/files-tree.js +1 -5
  248. package/server/applications/files/utils/files-tree.js.map +1 -1
  249. package/server/applications/files/utils/files.js +1 -5
  250. package/server/applications/files/utils/files.js.map +1 -1
  251. package/server/applications/files/utils/send-file.js +1 -5
  252. package/server/applications/files/utils/send-file.js.map +1 -1
  253. package/server/applications/files/utils/unzip-file.js +1 -5
  254. package/server/applications/files/utils/unzip-file.js.map +1 -1
  255. package/server/applications/files/utils/url-file.js +1 -5
  256. package/server/applications/files/utils/url-file.js.map +1 -1
  257. package/server/applications/links/constants/cache.js +1 -5
  258. package/server/applications/links/constants/cache.js.map +1 -1
  259. package/server/applications/links/constants/links.js +1 -5
  260. package/server/applications/links/constants/links.js.map +1 -1
  261. package/server/applications/links/constants/routes.js +1 -5
  262. package/server/applications/links/constants/routes.js.map +1 -1
  263. package/server/applications/links/dto/create-or-update-link.dto.js +1 -5
  264. package/server/applications/links/dto/create-or-update-link.dto.js.map +1 -1
  265. package/server/applications/links/interfaces/link-guest.interface.js +1 -5
  266. package/server/applications/links/interfaces/link-guest.interface.js.map +1 -1
  267. package/server/applications/links/interfaces/link-space.interface.js +1 -5
  268. package/server/applications/links/interfaces/link-space.interface.js.map +1 -1
  269. package/server/applications/links/links.controller.js +1 -5
  270. package/server/applications/links/links.controller.js.map +1 -1
  271. package/server/applications/links/links.controller.spec.js +1 -5
  272. package/server/applications/links/links.controller.spec.js.map +1 -1
  273. package/server/applications/links/schemas/link.interface.js +1 -5
  274. package/server/applications/links/schemas/link.interface.js.map +1 -1
  275. package/server/applications/links/schemas/links.schema.js +1 -5
  276. package/server/applications/links/schemas/links.schema.js.map +1 -1
  277. package/server/applications/links/services/links-manager.service.js +55 -20
  278. package/server/applications/links/services/links-manager.service.js.map +1 -1
  279. package/server/applications/links/services/links-manager.service.spec.js +3 -7
  280. package/server/applications/links/services/links-manager.service.spec.js.map +1 -1
  281. package/server/applications/links/services/links-queries.service.js +1 -5
  282. package/server/applications/links/services/links-queries.service.js.map +1 -1
  283. package/server/applications/notifications/constants/notifications.js +1 -5
  284. package/server/applications/notifications/constants/notifications.js.map +1 -1
  285. package/server/applications/notifications/constants/routes.js +1 -5
  286. package/server/applications/notifications/constants/routes.js.map +1 -1
  287. package/server/applications/notifications/constants/websocket.js +1 -5
  288. package/server/applications/notifications/constants/websocket.js.map +1 -1
  289. package/server/applications/notifications/i18n/de.js +1 -9
  290. package/server/applications/notifications/i18n/de.js.map +1 -1
  291. package/server/applications/notifications/i18n/es.js +1 -5
  292. package/server/applications/notifications/i18n/es.js.map +1 -1
  293. package/server/applications/notifications/i18n/fr.js +1 -5
  294. package/server/applications/notifications/i18n/fr.js.map +1 -1
  295. package/server/applications/notifications/i18n/hi.js +1 -5
  296. package/server/applications/notifications/i18n/hi.js.map +1 -1
  297. package/server/applications/notifications/i18n/index.js +1 -5
  298. package/server/applications/notifications/i18n/index.js.map +1 -1
  299. package/server/applications/notifications/i18n/it.js +1 -5
  300. package/server/applications/notifications/i18n/it.js.map +1 -1
  301. package/server/applications/notifications/i18n/ja.js +1 -5
  302. package/server/applications/notifications/i18n/ja.js.map +1 -1
  303. package/server/applications/notifications/i18n/ko.js +1 -5
  304. package/server/applications/notifications/i18n/ko.js.map +1 -1
  305. package/server/applications/notifications/i18n/pl.js +1 -5
  306. package/server/applications/notifications/i18n/pl.js.map +1 -1
  307. package/server/applications/notifications/i18n/pt.js +1 -5
  308. package/server/applications/notifications/i18n/pt.js.map +1 -1
  309. package/server/applications/notifications/i18n/pt_br.js +1 -5
  310. package/server/applications/notifications/i18n/pt_br.js.map +1 -1
  311. package/server/applications/notifications/i18n/ru.js +1 -5
  312. package/server/applications/notifications/i18n/ru.js.map +1 -1
  313. package/server/applications/notifications/i18n/tr.js +1 -5
  314. package/server/applications/notifications/i18n/tr.js.map +1 -1
  315. package/server/applications/notifications/i18n/zh.js +1 -5
  316. package/server/applications/notifications/i18n/zh.js.map +1 -1
  317. package/server/applications/notifications/interfaces/notification-properties.interface.js +1 -5
  318. package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -1
  319. package/server/applications/notifications/interfaces/user-mail-notification.interface.js +1 -5
  320. package/server/applications/notifications/interfaces/user-mail-notification.interface.js.map +1 -1
  321. package/server/applications/notifications/mails/models.js +1 -5
  322. package/server/applications/notifications/mails/models.js.map +1 -1
  323. package/server/applications/notifications/mails/templates.js +1 -5
  324. package/server/applications/notifications/mails/templates.js.map +1 -1
  325. package/server/applications/notifications/mails/urls.js +1 -5
  326. package/server/applications/notifications/mails/urls.js.map +1 -1
  327. package/server/applications/notifications/notifications.controller.js +1 -5
  328. package/server/applications/notifications/notifications.controller.js.map +1 -1
  329. package/server/applications/notifications/notifications.controller.spec.js +1 -5
  330. package/server/applications/notifications/notifications.controller.spec.js.map +1 -1
  331. package/server/applications/notifications/notifications.gateway.js +1 -5
  332. package/server/applications/notifications/notifications.gateway.js.map +1 -1
  333. package/server/applications/notifications/notifications.module.js +1 -5
  334. package/server/applications/notifications/notifications.module.js.map +1 -1
  335. package/server/applications/notifications/schemas/notification.interface.js +1 -5
  336. package/server/applications/notifications/schemas/notification.interface.js.map +1 -1
  337. package/server/applications/notifications/schemas/notifications.schema.js +1 -5
  338. package/server/applications/notifications/schemas/notifications.schema.js.map +1 -1
  339. package/server/applications/notifications/services/notifications-manager.service.js +25 -11
  340. package/server/applications/notifications/services/notifications-manager.service.js.map +1 -1
  341. package/server/applications/notifications/services/notifications-manager.service.spec.js +20 -11
  342. package/server/applications/notifications/services/notifications-manager.service.spec.js.map +1 -1
  343. package/server/applications/notifications/services/notifications-queries.service.js +1 -5
  344. package/server/applications/notifications/services/notifications-queries.service.js.map +1 -1
  345. package/server/applications/shares/constants/routes.js +1 -5
  346. package/server/applications/shares/constants/routes.js.map +1 -1
  347. package/server/applications/shares/constants/shares.js +1 -5
  348. package/server/applications/shares/constants/shares.js.map +1 -1
  349. package/server/applications/shares/dto/create-or-update-share.dto.js +1 -5
  350. package/server/applications/shares/dto/create-or-update-share.dto.js.map +1 -1
  351. package/server/applications/shares/interfaces/share-child.interface.js +1 -5
  352. package/server/applications/shares/interfaces/share-child.interface.js.map +1 -1
  353. package/server/applications/shares/interfaces/share-env.interface.js +1 -5
  354. package/server/applications/shares/interfaces/share-env.interface.js.map +1 -1
  355. package/server/applications/shares/interfaces/share-file.interface.js +1 -5
  356. package/server/applications/shares/interfaces/share-file.interface.js.map +1 -1
  357. package/server/applications/shares/interfaces/share-link.interface.js +1 -5
  358. package/server/applications/shares/interfaces/share-link.interface.js.map +1 -1
  359. package/server/applications/shares/interfaces/share-props.interface.js +1 -5
  360. package/server/applications/shares/interfaces/share-props.interface.js.map +1 -1
  361. package/server/applications/shares/models/share-child.model.js +1 -5
  362. package/server/applications/shares/models/share-child.model.js.map +1 -1
  363. package/server/applications/shares/schemas/share-members.interface.js +1 -5
  364. package/server/applications/shares/schemas/share-members.interface.js.map +1 -1
  365. package/server/applications/shares/schemas/share.interface.js +1 -5
  366. package/server/applications/shares/schemas/share.interface.js.map +1 -1
  367. package/server/applications/shares/schemas/shares-members.schema.js +1 -5
  368. package/server/applications/shares/schemas/shares-members.schema.js.map +1 -1
  369. package/server/applications/shares/schemas/shares.schema.js +1 -5
  370. package/server/applications/shares/schemas/shares.schema.js.map +1 -1
  371. package/server/applications/shares/services/shares-manager.service.js +214 -68
  372. package/server/applications/shares/services/shares-manager.service.js.map +1 -1
  373. package/server/applications/shares/services/shares-manager.service.spec.js +1 -5
  374. package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -1
  375. package/server/applications/shares/services/shares-queries.service.js +49 -17
  376. package/server/applications/shares/services/shares-queries.service.js.map +1 -1
  377. package/server/applications/shares/shares.controller.js +1 -5
  378. package/server/applications/shares/shares.controller.js.map +1 -1
  379. package/server/applications/shares/shares.controller.spec.js +1 -5
  380. package/server/applications/shares/shares.controller.spec.js.map +1 -1
  381. package/server/applications/shares/shares.module.js +1 -5
  382. package/server/applications/shares/shares.module.js.map +1 -1
  383. package/server/applications/spaces/constants/cache.js +1 -5
  384. package/server/applications/spaces/constants/cache.js.map +1 -1
  385. package/server/applications/spaces/constants/routes.js +1 -5
  386. package/server/applications/spaces/constants/routes.js.map +1 -1
  387. package/server/applications/spaces/constants/spaces.js +1 -5
  388. package/server/applications/spaces/constants/spaces.js.map +1 -1
  389. package/server/applications/spaces/decorators/space-override-permission.decorator.js +1 -5
  390. package/server/applications/spaces/decorators/space-override-permission.decorator.js.map +1 -1
  391. package/server/applications/spaces/decorators/space-skip-guard.decorator.js +1 -5
  392. package/server/applications/spaces/decorators/space-skip-guard.decorator.js.map +1 -1
  393. package/server/applications/spaces/decorators/space-skip-permissions.decorator.js +1 -5
  394. package/server/applications/spaces/decorators/space-skip-permissions.decorator.js.map +1 -1
  395. package/server/applications/spaces/decorators/space.decorator.js +1 -5
  396. package/server/applications/spaces/decorators/space.decorator.js.map +1 -1
  397. package/server/applications/spaces/dto/create-or-update-space.dto.js +1 -5
  398. package/server/applications/spaces/dto/create-or-update-space.dto.js.map +1 -1
  399. package/server/applications/spaces/dto/delete-space.dto.js +1 -5
  400. package/server/applications/spaces/dto/delete-space.dto.js.map +1 -1
  401. package/server/applications/spaces/dto/search-space.dto.js +1 -5
  402. package/server/applications/spaces/dto/search-space.dto.js.map +1 -1
  403. package/server/applications/spaces/dto/space-roots.dto.js +1 -5
  404. package/server/applications/spaces/dto/space-roots.dto.js.map +1 -1
  405. package/server/applications/spaces/guards/space.guard.js +17 -9
  406. package/server/applications/spaces/guards/space.guard.js.map +1 -1
  407. package/server/applications/spaces/guards/space.guard.spec.js +1 -5
  408. package/server/applications/spaces/guards/space.guard.spec.js.map +1 -1
  409. package/server/applications/spaces/interfaces/space-diff.interface.js +1 -5
  410. package/server/applications/spaces/interfaces/space-diff.interface.js.map +1 -1
  411. package/server/applications/spaces/interfaces/space-files.interface.js +1 -5
  412. package/server/applications/spaces/interfaces/space-files.interface.js.map +1 -1
  413. package/server/applications/spaces/interfaces/space-request.interface.js +1 -5
  414. package/server/applications/spaces/interfaces/space-request.interface.js.map +1 -1
  415. package/server/applications/spaces/interfaces/space-trash.interface.js +1 -5
  416. package/server/applications/spaces/interfaces/space-trash.interface.js.map +1 -1
  417. package/server/applications/spaces/models/space-env.model.js +1 -5
  418. package/server/applications/spaces/models/space-env.model.js.map +1 -1
  419. package/server/applications/spaces/models/space-props.model.js +1 -5
  420. package/server/applications/spaces/models/space-props.model.js.map +1 -1
  421. package/server/applications/spaces/models/space-root-props.model.js +1 -5
  422. package/server/applications/spaces/models/space-root-props.model.js.map +1 -1
  423. package/server/applications/spaces/models/space.model.js +1 -5
  424. package/server/applications/spaces/models/space.model.js.map +1 -1
  425. package/server/applications/spaces/schemas/space-members.interface.js +1 -5
  426. package/server/applications/spaces/schemas/space-members.interface.js.map +1 -1
  427. package/server/applications/spaces/schemas/space-root.interface.js +1 -5
  428. package/server/applications/spaces/schemas/space-root.interface.js.map +1 -1
  429. package/server/applications/spaces/schemas/space.interface.js +1 -5
  430. package/server/applications/spaces/schemas/space.interface.js.map +1 -1
  431. package/server/applications/spaces/schemas/spaces-members.schema.js +1 -5
  432. package/server/applications/spaces/schemas/spaces-members.schema.js.map +1 -1
  433. package/server/applications/spaces/schemas/spaces-roots.schema.js +1 -5
  434. package/server/applications/spaces/schemas/spaces-roots.schema.js.map +1 -1
  435. package/server/applications/spaces/schemas/spaces.schema.js +1 -5
  436. package/server/applications/spaces/schemas/spaces.schema.js.map +1 -1
  437. package/server/applications/spaces/services/spaces-browser.service.js +77 -24
  438. package/server/applications/spaces/services/spaces-browser.service.js.map +1 -1
  439. package/server/applications/spaces/services/spaces-browser.service.spec.js +1 -5
  440. package/server/applications/spaces/services/spaces-browser.service.spec.js.map +1 -1
  441. package/server/applications/spaces/services/spaces-manager.service.js +193 -53
  442. package/server/applications/spaces/services/spaces-manager.service.js.map +1 -1
  443. package/server/applications/spaces/services/spaces-manager.service.spec.js +1 -5
  444. package/server/applications/spaces/services/spaces-manager.service.spec.js.map +1 -1
  445. package/server/applications/spaces/services/spaces-queries.service.js +65 -21
  446. package/server/applications/spaces/services/spaces-queries.service.js.map +1 -1
  447. package/server/applications/spaces/services/spaces-scheduler.service.js +49 -17
  448. package/server/applications/spaces/services/spaces-scheduler.service.js.map +1 -1
  449. package/server/applications/spaces/spaces.controller.js +1 -5
  450. package/server/applications/spaces/spaces.controller.js.map +1 -1
  451. package/server/applications/spaces/spaces.controller.spec.js +1 -5
  452. package/server/applications/spaces/spaces.controller.spec.js.map +1 -1
  453. package/server/applications/spaces/spaces.module.js +1 -5
  454. package/server/applications/spaces/spaces.module.js.map +1 -1
  455. package/server/applications/spaces/utils/paths.js +1 -5
  456. package/server/applications/spaces/utils/paths.js.map +1 -1
  457. package/server/applications/spaces/utils/permissions.js +1 -5
  458. package/server/applications/spaces/utils/permissions.js.map +1 -1
  459. package/server/applications/spaces/utils/routes.js +1 -5
  460. package/server/applications/spaces/utils/routes.js.map +1 -1
  461. package/server/applications/sync/constants/auth.js +1 -5
  462. package/server/applications/sync/constants/auth.js.map +1 -1
  463. package/server/applications/sync/constants/routes.js +6 -5
  464. package/server/applications/sync/constants/routes.js.map +1 -1
  465. package/server/applications/sync/constants/store.js +1 -9
  466. package/server/applications/sync/constants/store.js.map +1 -1
  467. package/server/applications/sync/constants/sync.js +2 -6
  468. package/server/applications/sync/constants/sync.js.map +1 -1
  469. package/server/applications/sync/decorators/sync-context.decorator.js +1 -5
  470. package/server/applications/sync/decorators/sync-context.decorator.js.map +1 -1
  471. package/server/applications/sync/decorators/sync-environment.decorator.js +1 -5
  472. package/server/applications/sync/decorators/sync-environment.decorator.js.map +1 -1
  473. package/server/applications/sync/dtos/sync-client-auth.dto.js +12 -8
  474. package/server/applications/sync/dtos/sync-client-auth.dto.js.map +1 -1
  475. package/server/applications/sync/dtos/sync-client-info.dto.js +49 -0
  476. package/server/applications/sync/dtos/sync-client-info.dto.js.map +1 -0
  477. package/server/applications/sync/dtos/sync-client-registration.dto.js +34 -11
  478. package/server/applications/sync/dtos/sync-client-registration.dto.js.map +1 -1
  479. package/server/applications/sync/dtos/sync-operations.dto.js +1 -5
  480. package/server/applications/sync/dtos/sync-operations.dto.js.map +1 -1
  481. package/server/applications/sync/dtos/sync-path.dto.js +1 -5
  482. package/server/applications/sync/dtos/sync-path.dto.js.map +1 -1
  483. package/server/applications/sync/dtos/sync-upload.dto.js +1 -5
  484. package/server/applications/sync/dtos/sync-upload.dto.js.map +1 -1
  485. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js +1 -5
  486. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js.map +1 -1
  487. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js +1 -5
  488. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js.map +1 -1
  489. package/server/applications/sync/interfaces/store-manifest.interface.js +1 -5
  490. package/server/applications/sync/interfaces/store-manifest.interface.js.map +1 -1
  491. package/server/applications/sync/interfaces/sync-client-auth.interface.js +1 -25
  492. package/server/applications/sync/interfaces/sync-client-auth.interface.js.map +1 -1
  493. package/server/applications/sync/interfaces/sync-client-paths.interface.js +1 -5
  494. package/server/applications/sync/interfaces/sync-client-paths.interface.js.map +1 -1
  495. package/server/applications/sync/interfaces/sync-client.interface.js +1 -5
  496. package/server/applications/sync/interfaces/sync-client.interface.js.map +1 -1
  497. package/server/applications/sync/interfaces/sync-diff.interface.js +1 -5
  498. package/server/applications/sync/interfaces/sync-diff.interface.js.map +1 -1
  499. package/server/applications/sync/interfaces/sync-path.interface.js +1 -5
  500. package/server/applications/sync/interfaces/sync-path.interface.js.map +1 -1
  501. package/server/applications/sync/schemas/sync-client.interface.js +1 -5
  502. package/server/applications/sync/schemas/sync-client.interface.js.map +1 -1
  503. package/server/applications/sync/schemas/sync-clients.schema.js +1 -5
  504. package/server/applications/sync/schemas/sync-clients.schema.js.map +1 -1
  505. package/server/applications/sync/schemas/sync-path.interface.js +1 -5
  506. package/server/applications/sync/schemas/sync-path.interface.js.map +1 -1
  507. package/server/applications/sync/schemas/sync-paths.schema.js +1 -5
  508. package/server/applications/sync/schemas/sync-paths.schema.js.map +1 -1
  509. package/server/applications/sync/services/sync-clients-manager.service.js +108 -44
  510. package/server/applications/sync/services/sync-clients-manager.service.js.map +1 -1
  511. package/server/applications/sync/services/sync-clients-manager.service.spec.js +14 -17
  512. package/server/applications/sync/services/sync-clients-manager.service.spec.js.map +1 -1
  513. package/server/applications/sync/services/sync-manager.service.js +29 -12
  514. package/server/applications/sync/services/sync-manager.service.js.map +1 -1
  515. package/server/applications/sync/services/sync-manager.service.spec.js +1 -5
  516. package/server/applications/sync/services/sync-manager.service.spec.js.map +1 -1
  517. package/server/applications/sync/services/sync-paths-manager.service.js +27 -17
  518. package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -1
  519. package/server/applications/sync/services/sync-paths-manager.service.spec.js +11 -15
  520. package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -1
  521. package/server/applications/sync/services/sync-queries.service.js +1 -5
  522. package/server/applications/sync/services/sync-queries.service.js.map +1 -1
  523. package/server/applications/sync/sync.config.js +1 -5
  524. package/server/applications/sync/sync.config.js.map +1 -1
  525. package/server/applications/sync/sync.controller.js +21 -6
  526. package/server/applications/sync/sync.controller.js.map +1 -1
  527. package/server/applications/sync/sync.controller.spec.js +1 -5
  528. package/server/applications/sync/sync.controller.spec.js.map +1 -1
  529. package/server/applications/sync/sync.module.js +1 -5
  530. package/server/applications/sync/sync.module.js.map +1 -1
  531. package/server/applications/sync/utils/functions.js +1 -5
  532. package/server/applications/sync/utils/functions.js.map +1 -1
  533. package/server/applications/sync/utils/normalizedMap.js +1 -5
  534. package/server/applications/sync/utils/normalizedMap.js.map +1 -1
  535. package/server/applications/sync/utils/routes.js +1 -5
  536. package/server/applications/sync/utils/routes.js.map +1 -1
  537. package/server/applications/users/admin-users.controller.js +2 -6
  538. package/server/applications/users/admin-users.controller.js.map +1 -1
  539. package/server/applications/users/admin-users.controller.spec.js +6 -10
  540. package/server/applications/users/admin-users.controller.spec.js.map +1 -1
  541. package/server/applications/users/constants/group.js +1 -5
  542. package/server/applications/users/constants/group.js.map +1 -1
  543. package/server/applications/users/constants/member.js +1 -5
  544. package/server/applications/users/constants/member.js.map +1 -1
  545. package/server/applications/users/constants/routes.js +1 -5
  546. package/server/applications/users/constants/routes.js.map +1 -1
  547. package/server/applications/users/constants/user.js +1 -5
  548. package/server/applications/users/constants/user.js.map +1 -1
  549. package/server/applications/users/constants/websocket.js +1 -5
  550. package/server/applications/users/constants/websocket.js.map +1 -1
  551. package/server/applications/users/decorators/permissions.decorator.js +1 -5
  552. package/server/applications/users/decorators/permissions.decorator.js.map +1 -1
  553. package/server/applications/users/decorators/roles.decorator.js +1 -5
  554. package/server/applications/users/decorators/roles.decorator.js.map +1 -1
  555. package/server/applications/users/decorators/user.decorator.js +1 -5
  556. package/server/applications/users/decorators/user.decorator.js.map +1 -1
  557. package/server/applications/users/dto/create-or-update-group.dto.js +1 -5
  558. package/server/applications/users/dto/create-or-update-group.dto.js.map +1 -1
  559. package/server/applications/users/dto/create-or-update-user.dto.js +1 -5
  560. package/server/applications/users/dto/create-or-update-user.dto.js.map +1 -1
  561. package/server/applications/users/dto/delete-user.dto.js +1 -5
  562. package/server/applications/users/dto/delete-user.dto.js.map +1 -1
  563. package/server/applications/users/dto/search-members.dto.js +1 -5
  564. package/server/applications/users/dto/search-members.dto.js.map +1 -1
  565. package/server/applications/users/dto/user-properties.dto.js +1 -5
  566. package/server/applications/users/dto/user-properties.dto.js.map +1 -1
  567. package/server/applications/users/guards/permissions.guard.js +1 -5
  568. package/server/applications/users/guards/permissions.guard.js.map +1 -1
  569. package/server/applications/users/guards/permissions.guard.spec.js +1 -5
  570. package/server/applications/users/guards/permissions.guard.spec.js.map +1 -1
  571. package/server/applications/users/guards/roles.guard.js +1 -5
  572. package/server/applications/users/guards/roles.guard.js.map +1 -1
  573. package/server/applications/users/guards/roles.guard.spec.js +1 -5
  574. package/server/applications/users/guards/roles.guard.spec.js.map +1 -1
  575. package/server/applications/users/interfaces/admin-group.interface.js +1 -5
  576. package/server/applications/users/interfaces/admin-group.interface.js.map +1 -1
  577. package/server/applications/users/interfaces/admin-user.interface.js +1 -5
  578. package/server/applications/users/interfaces/admin-user.interface.js.map +1 -1
  579. package/server/applications/users/interfaces/group-browse.interface.js +1 -5
  580. package/server/applications/users/interfaces/group-browse.interface.js.map +1 -1
  581. package/server/applications/users/interfaces/group-member.js +1 -5
  582. package/server/applications/users/interfaces/group-member.js.map +1 -1
  583. package/server/applications/users/interfaces/guest-user.interface.js +1 -5
  584. package/server/applications/users/interfaces/guest-user.interface.js.map +1 -1
  585. package/server/applications/users/interfaces/member.interface.js +1 -5
  586. package/server/applications/users/interfaces/member.interface.js.map +1 -1
  587. package/server/applications/users/interfaces/owner.interface.js +1 -5
  588. package/server/applications/users/interfaces/owner.interface.js.map +1 -1
  589. package/server/applications/users/interfaces/user-secrets.interface.js +1 -5
  590. package/server/applications/users/interfaces/user-secrets.interface.js.map +1 -1
  591. package/server/applications/users/interfaces/websocket.interface.js +1 -5
  592. package/server/applications/users/interfaces/websocket.interface.js.map +1 -1
  593. package/server/applications/users/models/user.model.js +1 -5
  594. package/server/applications/users/models/user.model.js.map +1 -1
  595. package/server/applications/users/schemas/group.interface.js +1 -5
  596. package/server/applications/users/schemas/group.interface.js.map +1 -1
  597. package/server/applications/users/schemas/groups.schema.js +1 -5
  598. package/server/applications/users/schemas/groups.schema.js.map +1 -1
  599. package/server/applications/users/schemas/user-group.interface.js +1 -5
  600. package/server/applications/users/schemas/user-group.interface.js.map +1 -1
  601. package/server/applications/users/schemas/user.interface.js +1 -5
  602. package/server/applications/users/schemas/user.interface.js.map +1 -1
  603. package/server/applications/users/schemas/users-groups.schema.js +1 -5
  604. package/server/applications/users/schemas/users-groups.schema.js.map +1 -1
  605. package/server/applications/users/schemas/users-guests.schema.js +1 -5
  606. package/server/applications/users/schemas/users-guests.schema.js.map +1 -1
  607. package/server/applications/users/schemas/users.schema.js +1 -5
  608. package/server/applications/users/schemas/users.schema.js.map +1 -1
  609. package/server/applications/users/services/admin-users-manager.service.js +67 -23
  610. package/server/applications/users/services/admin-users-manager.service.js.map +1 -1
  611. package/server/applications/users/services/admin-users-manager.service.spec.js +3 -7
  612. package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -1
  613. package/server/applications/users/services/admin-users-queries.service.js +65 -21
  614. package/server/applications/users/services/admin-users-queries.service.js.map +1 -1
  615. package/server/applications/users/services/users-manager.service.js +81 -25
  616. package/server/applications/users/services/users-manager.service.js.map +1 -1
  617. package/server/applications/users/services/users-manager.service.spec.js +14 -12
  618. package/server/applications/users/services/users-manager.service.spec.js.map +1 -1
  619. package/server/applications/users/services/users-queries.service.js +49 -17
  620. package/server/applications/users/services/users-queries.service.js.map +1 -1
  621. package/server/applications/users/users.controller.js +2 -6
  622. package/server/applications/users/users.controller.js.map +1 -1
  623. package/server/applications/users/users.controller.spec.js +5 -9
  624. package/server/applications/users/users.controller.spec.js.map +1 -1
  625. package/server/applications/users/users.e2e-spec.js +3 -7
  626. package/server/applications/users/users.e2e-spec.js.map +1 -1
  627. package/server/applications/users/users.gateway.js +29 -12
  628. package/server/applications/users/users.gateway.js.map +1 -1
  629. package/server/applications/users/users.gateway.spec.js +1 -5
  630. package/server/applications/users/users.gateway.spec.js.map +1 -1
  631. package/server/applications/users/users.module.js +1 -5
  632. package/server/applications/users/users.module.js.map +1 -1
  633. package/server/applications/users/utils/avatar.js +1 -5
  634. package/server/applications/users/utils/avatar.js.map +1 -1
  635. package/server/applications/users/utils/test.js +1 -5
  636. package/server/applications/users/utils/test.js.map +1 -1
  637. package/server/applications/webdav/constants/routes.js +1 -5
  638. package/server/applications/webdav/constants/routes.js.map +1 -1
  639. package/server/applications/webdav/constants/webdav.js +1 -5
  640. package/server/applications/webdav/constants/webdav.js.map +1 -1
  641. package/server/applications/webdav/decorators/if-header.decorator.js +1 -5
  642. package/server/applications/webdav/decorators/if-header.decorator.js.map +1 -1
  643. package/server/applications/webdav/decorators/webdav-context.decorator.js +1 -5
  644. package/server/applications/webdav/decorators/webdav-context.decorator.js.map +1 -1
  645. package/server/applications/webdav/filters/webdav.filter.js +1 -5
  646. package/server/applications/webdav/filters/webdav.filter.js.map +1 -1
  647. package/server/applications/webdav/filters/webdav.filter.spec.js +1 -5
  648. package/server/applications/webdav/filters/webdav.filter.spec.js.map +1 -1
  649. package/server/applications/webdav/guards/webdav-protocol.guard.js +54 -20
  650. package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -1
  651. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js +54 -0
  652. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js.map +1 -1
  653. package/server/applications/webdav/interfaces/if-header.interface.js +1 -5
  654. package/server/applications/webdav/interfaces/if-header.interface.js.map +1 -1
  655. package/server/applications/webdav/interfaces/webdav.interface.js +1 -5
  656. package/server/applications/webdav/interfaces/webdav.interface.js.map +1 -1
  657. package/server/applications/webdav/models/webdav-file.model.js +1 -5
  658. package/server/applications/webdav/models/webdav-file.model.js.map +1 -1
  659. package/server/applications/webdav/services/webdav-methods.service.js +74 -26
  660. package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
  661. package/server/applications/webdav/services/webdav-methods.service.spec.js +15 -18
  662. package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -1
  663. package/server/applications/webdav/services/webdav-spaces.service.js +17 -9
  664. package/server/applications/webdav/services/webdav-spaces.service.js.map +1 -1
  665. package/server/applications/webdav/services/webdav-spaces.service.spec.js +1 -5
  666. package/server/applications/webdav/services/webdav-spaces.service.spec.js.map +1 -1
  667. package/server/applications/webdav/utils/bootstrap.js +1 -5
  668. package/server/applications/webdav/utils/bootstrap.js.map +1 -1
  669. package/server/applications/webdav/utils/if-header.js +1 -5
  670. package/server/applications/webdav/utils/if-header.js.map +1 -1
  671. package/server/applications/webdav/utils/routes.js +1 -5
  672. package/server/applications/webdav/utils/routes.js.map +1 -1
  673. package/server/applications/webdav/utils/webdav.js +1 -5
  674. package/server/applications/webdav/utils/webdav.js.map +1 -1
  675. package/server/applications/webdav/utils/xml.js +1 -5
  676. package/server/applications/webdav/utils/xml.js.map +1 -1
  677. package/server/applications/webdav/webdav.controller.js +1 -5
  678. package/server/applications/webdav/webdav.controller.js.map +1 -1
  679. package/server/applications/webdav/webdav.controller.spec.js +1 -5
  680. package/server/applications/webdav/webdav.controller.spec.js.map +1 -1
  681. package/server/applications/webdav/webdav.e2e-spec.js +1 -5
  682. package/server/applications/webdav/webdav.e2e-spec.js.map +1 -1
  683. package/server/applications/webdav/webdav.module.js +1 -5
  684. package/server/applications/webdav/webdav.module.js.map +1 -1
  685. package/server/authentication/auth.config.js +23 -123
  686. package/server/authentication/auth.config.js.map +1 -1
  687. package/server/authentication/auth.controller.js +27 -21
  688. package/server/authentication/auth.controller.js.map +1 -1
  689. package/server/authentication/auth.controller.spec.js +6 -10
  690. package/server/authentication/auth.controller.spec.js.map +1 -1
  691. package/server/authentication/auth.e2e-spec.js +1 -5
  692. package/server/authentication/auth.e2e-spec.js.map +1 -1
  693. package/server/authentication/auth.module.js +17 -20
  694. package/server/authentication/auth.module.js.map +1 -1
  695. package/server/authentication/{services/auth-manager.service.js → auth.service.js} +41 -18
  696. package/server/authentication/auth.service.js.map +1 -0
  697. package/server/authentication/{services/auth-manager.service.spec.js → auth.service.spec.js} +6 -10
  698. package/server/authentication/auth.service.spec.js.map +1 -0
  699. package/server/authentication/constants/auth.js +1 -5
  700. package/server/authentication/constants/auth.js.map +1 -1
  701. package/server/authentication/constants/routes.js +41 -30
  702. package/server/authentication/constants/routes.js.map +1 -1
  703. package/server/authentication/constants/scope.js +2 -5
  704. package/server/authentication/constants/scope.js.map +1 -1
  705. package/server/authentication/decorators/auth-token-optional.decorator.js +1 -5
  706. package/server/authentication/decorators/auth-token-optional.decorator.js.map +1 -1
  707. package/server/authentication/decorators/auth-token-skip.decorator.js +1 -5
  708. package/server/authentication/decorators/auth-token-skip.decorator.js.map +1 -1
  709. package/server/authentication/dto/login-response.dto.js +1 -10
  710. package/server/authentication/dto/login-response.dto.js.map +1 -1
  711. package/server/authentication/dto/token-response.dto.js +1 -5
  712. package/server/authentication/dto/token-response.dto.js.map +1 -1
  713. package/server/authentication/guards/auth-anonymous.guard.js +1 -5
  714. package/server/authentication/guards/auth-anonymous.guard.js.map +1 -1
  715. package/server/authentication/guards/auth-anonymous.guard.spec.js +1 -5
  716. package/server/authentication/guards/auth-anonymous.guard.spec.js.map +1 -1
  717. package/server/authentication/guards/auth-anonymous.strategy.js +1 -5
  718. package/server/authentication/guards/auth-anonymous.strategy.js.map +1 -1
  719. package/server/authentication/guards/auth-basic.guard.js +1 -5
  720. package/server/authentication/guards/auth-basic.guard.js.map +1 -1
  721. package/server/authentication/guards/auth-basic.guard.spec.js +13 -14
  722. package/server/authentication/guards/auth-basic.guard.spec.js.map +1 -1
  723. package/server/authentication/guards/auth-basic.strategy.js +10 -11
  724. package/server/authentication/guards/auth-basic.strategy.js.map +1 -1
  725. package/server/authentication/guards/auth-digest.guard.js +1 -5
  726. package/server/authentication/guards/auth-digest.guard.js.map +1 -1
  727. package/server/authentication/guards/auth-digest.strategy.js +1 -5
  728. package/server/authentication/guards/auth-digest.strategy.js.map +1 -1
  729. package/server/authentication/guards/auth-local.guard.js +1 -5
  730. package/server/authentication/guards/auth-local.guard.js.map +1 -1
  731. package/server/authentication/guards/auth-local.guard.spec.js +9 -13
  732. package/server/authentication/guards/auth-local.guard.spec.js.map +1 -1
  733. package/server/authentication/guards/auth-local.strategy.js +6 -10
  734. package/server/authentication/guards/auth-local.strategy.js.map +1 -1
  735. package/server/authentication/guards/auth-token-access.guard.js +1 -5
  736. package/server/authentication/guards/auth-token-access.guard.js.map +1 -1
  737. package/server/authentication/guards/auth-token-access.guard.spec.js +3 -7
  738. package/server/authentication/guards/auth-token-access.guard.spec.js.map +1 -1
  739. package/server/authentication/guards/auth-token-access.strategy.js +3 -7
  740. package/server/authentication/guards/auth-token-access.strategy.js.map +1 -1
  741. package/server/authentication/guards/auth-token-refresh.guard.js +1 -5
  742. package/server/authentication/guards/auth-token-refresh.guard.js.map +1 -1
  743. package/server/authentication/guards/auth-token-refresh.guard.spec.js +3 -7
  744. package/server/authentication/guards/auth-token-refresh.guard.spec.js.map +1 -1
  745. package/server/authentication/guards/auth-token-refresh.strategy.js +3 -7
  746. package/server/authentication/guards/auth-token-refresh.strategy.js.map +1 -1
  747. package/server/authentication/guards/implementations/http-basic.strategy.js +1 -5
  748. package/server/authentication/guards/implementations/http-basic.strategy.js.map +1 -1
  749. package/server/authentication/guards/implementations/http-digest.strategy.js +1 -5
  750. package/server/authentication/guards/implementations/http-digest.strategy.js.map +1 -1
  751. package/server/authentication/interfaces/auth-request.interface.js +1 -5
  752. package/server/authentication/interfaces/auth-request.interface.js.map +1 -1
  753. package/server/authentication/interfaces/jwt-payload.interface.js +1 -5
  754. package/server/authentication/interfaces/jwt-payload.interface.js.map +1 -1
  755. package/server/authentication/interfaces/token.interface.js +1 -5
  756. package/server/authentication/interfaces/token.interface.js.map +1 -1
  757. package/server/authentication/providers/auth-providers.constants.js +18 -0
  758. package/server/authentication/providers/auth-providers.constants.js.map +1 -0
  759. package/server/authentication/providers/auth-providers.models.js +14 -0
  760. package/server/authentication/providers/auth-providers.models.js.map +1 -0
  761. package/server/authentication/providers/auth-providers.utils.js +42 -0
  762. package/server/authentication/providers/auth-providers.utils.js.map +1 -0
  763. package/server/authentication/providers/ldap/auth-ldap.config.js +143 -0
  764. package/server/authentication/providers/ldap/auth-ldap.config.js.map +1 -0
  765. package/server/authentication/{constants/auth-ldap.js → providers/ldap/auth-ldap.constants.js} +12 -6
  766. package/server/authentication/providers/ldap/auth-ldap.constants.js.map +1 -0
  767. package/server/authentication/providers/ldap/auth-provider-ldap.service.js +506 -0
  768. package/server/authentication/providers/ldap/auth-provider-ldap.service.js.map +1 -0
  769. package/server/authentication/providers/ldap/auth-provider-ldap.service.spec.js +674 -0
  770. package/server/authentication/providers/ldap/auth-provider-ldap.service.spec.js.map +1 -0
  771. package/server/authentication/{services/auth-methods/auth-method-database.service.js → providers/mysql/auth-provider-mysql.service.js} +16 -14
  772. package/server/authentication/providers/mysql/auth-provider-mysql.service.js.map +1 -0
  773. package/server/authentication/{services/auth-methods/auth-method-database.service.spec.js → providers/mysql/auth-provider-mysql.service.spec.js} +15 -19
  774. package/server/authentication/providers/mysql/auth-provider-mysql.service.spec.js.map +1 -0
  775. package/server/authentication/providers/oidc/auth-oidc-desktop.constants.js +30 -0
  776. package/server/authentication/providers/oidc/auth-oidc-desktop.constants.js.map +1 -0
  777. package/server/authentication/providers/oidc/auth-oidc.config.js +149 -0
  778. package/server/authentication/providers/oidc/auth-oidc.config.js.map +1 -0
  779. package/server/authentication/providers/oidc/auth-oidc.constants.js +39 -0
  780. package/server/authentication/providers/oidc/auth-oidc.constants.js.map +1 -0
  781. package/server/authentication/providers/oidc/auth-oidc.controller.js +83 -0
  782. package/server/authentication/providers/oidc/auth-oidc.controller.js.map +1 -0
  783. package/server/authentication/providers/oidc/auth-oidc.interfaces.js +6 -0
  784. package/server/authentication/providers/oidc/auth-oidc.interfaces.js.map +1 -0
  785. package/server/authentication/providers/oidc/auth-provider-oidc.module.js +36 -0
  786. package/server/authentication/providers/oidc/auth-provider-oidc.module.js.map +1 -0
  787. package/server/authentication/providers/oidc/auth-provider-oidc.service.js +373 -0
  788. package/server/authentication/providers/oidc/auth-provider-oidc.service.js.map +1 -0
  789. package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js +270 -0
  790. package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js.map +1 -0
  791. package/server/authentication/{services/auth-methods/auth-method-two-fa.service.js → providers/two-fa/auth-provider-two-fa.service.js} +56 -38
  792. package/server/authentication/providers/two-fa/auth-provider-two-fa.service.js.map +1 -0
  793. package/server/authentication/{services/auth-methods/auth-method-two-fa.service.spec.js → providers/two-fa/auth-provider-two-fa.service.spec.js} +6 -10
  794. package/server/authentication/providers/two-fa/auth-provider-two-fa.service.spec.js.map +1 -0
  795. package/server/authentication/{guards → providers/two-fa}/auth-two-fa-guard.js +10 -14
  796. package/server/authentication/providers/two-fa/auth-two-fa-guard.js.map +1 -0
  797. package/server/authentication/providers/two-fa/auth-two-fa.config.js +57 -0
  798. package/server/authentication/providers/two-fa/auth-two-fa.config.js.map +1 -0
  799. package/server/authentication/{dto/two-fa-verify.dto.js → providers/two-fa/auth-two-fa.dtos.js} +8 -6
  800. package/server/authentication/providers/two-fa/auth-two-fa.dtos.js.map +1 -0
  801. package/server/authentication/providers/two-fa/auth-two-fa.interfaces.js +6 -0
  802. package/server/authentication/providers/two-fa/auth-two-fa.interfaces.js.map +1 -0
  803. package/server/authentication/utils/crypt-secret.js +1 -5
  804. package/server/authentication/utils/crypt-secret.js.map +1 -1
  805. package/server/common/constants.js +1 -5
  806. package/server/common/constants.js.map +1 -1
  807. package/server/common/decorators.js +1 -5
  808. package/server/common/decorators.js.map +1 -1
  809. package/server/common/functions.js +25 -9
  810. package/server/common/functions.js.map +1 -1
  811. package/server/common/i18n.js +1 -5
  812. package/server/common/i18n.js.map +1 -1
  813. package/server/common/image.js +1 -5
  814. package/server/common/image.js.map +1 -1
  815. package/server/common/interfaces.js +1 -5
  816. package/server/common/interfaces.js.map +1 -1
  817. package/server/common/qrcode.js +1 -5
  818. package/server/common/qrcode.js.map +1 -1
  819. package/server/common/shared.js +6 -6
  820. package/server/common/shared.js.map +1 -1
  821. package/server/configuration/config.constants.js +1 -5
  822. package/server/configuration/config.constants.js.map +1 -1
  823. package/server/configuration/config.environment.js +2 -6
  824. package/server/configuration/config.environment.js.map +1 -1
  825. package/server/configuration/config.interfaces.js +1 -5
  826. package/server/configuration/config.interfaces.js.map +1 -1
  827. package/server/configuration/config.loader.js +1 -5
  828. package/server/configuration/config.loader.js.map +1 -1
  829. package/server/configuration/config.logger.js +4 -8
  830. package/server/configuration/config.logger.js.map +1 -1
  831. package/server/configuration/config.validation.js +7 -5
  832. package/server/configuration/config.validation.js.map +1 -1
  833. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js +9 -7
  834. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js.map +1 -1
  835. package/server/infrastructure/cache/adapters/redis-cache.adapter.js +1 -5
  836. package/server/infrastructure/cache/adapters/redis-cache.adapter.js.map +1 -1
  837. package/server/infrastructure/cache/cache.config.js +1 -5
  838. package/server/infrastructure/cache/cache.config.js.map +1 -1
  839. package/server/infrastructure/cache/cache.decorator.js +9 -7
  840. package/server/infrastructure/cache/cache.decorator.js.map +1 -1
  841. package/server/infrastructure/cache/cache.e2e-spec.js +1 -5
  842. package/server/infrastructure/cache/cache.e2e-spec.js.map +1 -1
  843. package/server/infrastructure/cache/cache.module.js +1 -5
  844. package/server/infrastructure/cache/cache.module.js.map +1 -1
  845. package/server/infrastructure/cache/schemas/mysql-cache.interface.js +1 -5
  846. package/server/infrastructure/cache/schemas/mysql-cache.interface.js.map +1 -1
  847. package/server/infrastructure/cache/schemas/mysql-cache.schema.js +1 -5
  848. package/server/infrastructure/cache/schemas/mysql-cache.schema.js.map +1 -1
  849. package/server/infrastructure/cache/services/cache.service.js +1 -5
  850. package/server/infrastructure/cache/services/cache.service.js.map +1 -1
  851. package/server/infrastructure/context/context.module.js +1 -5
  852. package/server/infrastructure/context/context.module.js.map +1 -1
  853. package/server/infrastructure/context/interceptors/context.interceptor.js +1 -5
  854. package/server/infrastructure/context/interceptors/context.interceptor.js.map +1 -1
  855. package/server/infrastructure/context/interceptors/context.interceptor.spec.js +2 -6
  856. package/server/infrastructure/context/interceptors/context.interceptor.spec.js.map +1 -1
  857. package/server/infrastructure/context/interfaces/context-store.interface.js +1 -5
  858. package/server/infrastructure/context/interfaces/context-store.interface.js.map +1 -1
  859. package/server/infrastructure/context/services/context-manager.service.js +1 -5
  860. package/server/infrastructure/context/services/context-manager.service.js.map +1 -1
  861. package/server/infrastructure/context/services/context-manager.service.spec.js +1 -5
  862. package/server/infrastructure/context/services/context-manager.service.spec.js.map +1 -1
  863. package/server/infrastructure/database/columns.js +1 -5
  864. package/server/infrastructure/database/columns.js.map +1 -1
  865. package/server/infrastructure/database/configuration.js +1 -5
  866. package/server/infrastructure/database/configuration.js.map +1 -1
  867. package/server/infrastructure/database/constants.js +2 -6
  868. package/server/infrastructure/database/constants.js.map +1 -1
  869. package/server/infrastructure/database/database.config.js +1 -5
  870. package/server/infrastructure/database/database.config.js.map +1 -1
  871. package/server/infrastructure/database/database.logger.js +1 -5
  872. package/server/infrastructure/database/database.logger.js.map +1 -1
  873. package/server/infrastructure/database/database.module.js +1 -5
  874. package/server/infrastructure/database/database.module.js.map +1 -1
  875. package/server/infrastructure/database/interfaces/database.interface.js +1 -5
  876. package/server/infrastructure/database/interfaces/database.interface.js.map +1 -1
  877. package/server/infrastructure/database/schema.js +1 -5
  878. package/server/infrastructure/database/schema.js.map +1 -1
  879. package/server/infrastructure/database/scripts/create-user.js +1 -5
  880. package/server/infrastructure/database/scripts/create-user.js.map +1 -1
  881. package/server/infrastructure/database/scripts/db.js +1 -5
  882. package/server/infrastructure/database/scripts/db.js.map +1 -1
  883. package/server/infrastructure/database/scripts/seed/main.js +1 -5
  884. package/server/infrastructure/database/scripts/seed/main.js.map +1 -1
  885. package/server/infrastructure/database/scripts/seed/usersgroups.js +1 -5
  886. package/server/infrastructure/database/scripts/seed/usersgroups.js.map +1 -1
  887. package/server/infrastructure/database/utils.js +1 -5
  888. package/server/infrastructure/database/utils.js.map +1 -1
  889. package/server/infrastructure/mailer/interfaces/mail.interface.js +1 -5
  890. package/server/infrastructure/mailer/interfaces/mail.interface.js.map +1 -1
  891. package/server/infrastructure/mailer/mailer.config.js +1 -5
  892. package/server/infrastructure/mailer/mailer.config.js.map +1 -1
  893. package/server/infrastructure/mailer/mailer.module.js +1 -5
  894. package/server/infrastructure/mailer/mailer.module.js.map +1 -1
  895. package/server/infrastructure/mailer/mailer.service.js +1 -5
  896. package/server/infrastructure/mailer/mailer.service.js.map +1 -1
  897. package/server/infrastructure/mailer/mailer.service.spec.js +2 -6
  898. package/server/infrastructure/mailer/mailer.service.spec.js.map +1 -1
  899. package/server/infrastructure/scheduler/scheduler.constants.js +1 -5
  900. package/server/infrastructure/scheduler/scheduler.constants.js.map +1 -1
  901. package/server/infrastructure/scheduler/scheduler.module.js +1 -5
  902. package/server/infrastructure/scheduler/scheduler.module.js.map +1 -1
  903. package/server/infrastructure/websocket/adapters/cluster.adapter.js +1 -5
  904. package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -1
  905. package/server/infrastructure/websocket/adapters/redis.adapter.js +1 -5
  906. package/server/infrastructure/websocket/adapters/redis.adapter.js.map +1 -1
  907. package/server/infrastructure/websocket/adapters/web-socket.adapter.js +1 -5
  908. package/server/infrastructure/websocket/adapters/web-socket.adapter.js.map +1 -1
  909. package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js +1 -5
  910. package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js.map +1 -1
  911. package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js +1 -5
  912. package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js.map +1 -1
  913. package/server/infrastructure/websocket/utils.js +1 -5
  914. package/server/infrastructure/websocket/utils.js.map +1 -1
  915. package/server/infrastructure/websocket/web-socket.config.js +1 -5
  916. package/server/infrastructure/websocket/web-socket.config.js.map +1 -1
  917. package/server/main.js +5 -0
  918. package/server/main.js.map +1 -1
  919. package/static/assets/pdfjs/build/pdf.mjs +724 -745
  920. package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
  921. package/static/assets/pdfjs/build/pdf.sandbox.mjs +2 -2
  922. package/static/assets/pdfjs/build/pdf.worker.mjs +706 -193
  923. package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
  924. package/static/assets/pdfjs/version +1 -1
  925. package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +5 -5
  926. package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +1 -0
  927. package/static/assets/pdfjs/web/locale/fur/viewer.ftl +5 -0
  928. package/static/assets/pdfjs/web/locale/kk/viewer.ftl +28 -0
  929. package/static/assets/pdfjs/web/locale/ml/viewer.ftl +4 -0
  930. package/static/assets/pdfjs/web/locale/ru/viewer.ftl +3 -3
  931. package/static/assets/pdfjs/web/viewer.css +207 -65
  932. package/static/assets/pdfjs/web/viewer.html +11 -10
  933. package/static/assets/pdfjs/web/viewer.mjs +850 -270
  934. package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
  935. package/static/assets/pdfjs/web/wasm/LICENSE_JBIG2 +196 -0
  936. package/static/assets/pdfjs/web/wasm/LICENSE_PDFJS_JBIG2 +13 -0
  937. package/static/assets/pdfjs/web/wasm/jbig2.wasm +0 -0
  938. package/static/chunk-22TZP6HW.js +1 -0
  939. package/static/{chunk-G7TLKY5X.js → chunk-27ATUHBH.js} +1 -1
  940. package/static/{chunk-CQOQXVYG.js → chunk-2CKLZ3FM.js} +1 -1
  941. package/static/{chunk-FVFOX6OP.js → chunk-2QZPX7LO.js} +1 -1
  942. package/static/{chunk-32AVRWC3.js → chunk-2R6IBBPZ.js} +1 -1
  943. package/static/{chunk-76JDXKD7.js → chunk-4FIGEBNL.js} +1 -1
  944. package/static/{chunk-ACCGBDUZ.js → chunk-4P3JABAP.js} +4 -4
  945. package/static/chunk-5CZOSAMZ.js +1 -0
  946. package/static/{chunk-2PDTP6N4.js → chunk-677WUBCT.js} +1 -1
  947. package/static/{chunk-K5VO5XTG.js → chunk-74CAHBFM.js} +1 -1
  948. package/static/{chunk-WTWGBCFO.js → chunk-7GWW6MJO.js} +1 -1
  949. package/static/{chunk-JXZOYX4N.js → chunk-A4UGPSWX.js} +1 -1
  950. package/static/{chunk-44D7RWET.js → chunk-AHO37FKW.js} +1 -1
  951. package/static/{chunk-WB2DECOA.js → chunk-AQCXMKP3.js} +1 -1
  952. package/static/chunk-B6PDYCRO.js +3 -0
  953. package/static/{chunk-JVGN5V5E.js → chunk-CU76ATCF.js} +1 -1
  954. package/static/{chunk-Q5K4ZUHK.js → chunk-CWYHOPOP.js} +1 -1
  955. package/static/{chunk-IOX3ANJR.js → chunk-E5WI5725.js} +1 -1
  956. package/static/{chunk-NUG54Y65.js → chunk-FC5HTKVM.js} +1 -1
  957. package/static/{chunk-LRK6RNPR.js → chunk-FOSM7EYI.js} +1 -1
  958. package/static/{chunk-B4UP2EQM.js → chunk-GAZO25PI.js} +1 -1
  959. package/static/{chunk-3WBCGTYW.js → chunk-GB7ABR5N.js} +1 -1
  960. package/static/{chunk-XFZ37WVK.js → chunk-GEHFKZQ5.js} +1 -1
  961. package/static/{chunk-4CQLN5HL.js → chunk-GQFMWVFD.js} +1 -1
  962. package/static/{chunk-YBEH442D.js → chunk-GVNTC564.js} +1 -1
  963. package/static/{chunk-WO6GBHBZ.js → chunk-HGL3NYP2.js} +2 -2
  964. package/static/{chunk-IAWRRL6J.js → chunk-HLIWPWRA.js} +1 -1
  965. package/static/{chunk-6LHJBXUE.js → chunk-HNYB3M4S.js} +1 -1
  966. package/static/{chunk-5WTIUYFF.js → chunk-HUXAUQMN.js} +1 -1
  967. package/static/{chunk-VBH3Y2M5.js → chunk-I2XA6PPK.js} +1 -1
  968. package/static/{chunk-I3XI72AV.js → chunk-ISV3BO6R.js} +1 -1
  969. package/static/{chunk-P7X53PEP.js → chunk-JV3AGU5B.js} +1 -1
  970. package/static/{chunk-ZFAXICUH.js → chunk-K25E7YGG.js} +1 -1
  971. package/static/{chunk-CAD3RHAY.js → chunk-K46PUTZB.js} +1 -1
  972. package/static/{chunk-GYFLVCFN.js → chunk-KERFLJ56.js} +1 -7
  973. package/static/{chunk-WSTGWBVW.js → chunk-KJD3KFF3.js} +1 -1
  974. package/static/{chunk-R4P4NBUL.js → chunk-KPKSI23S.js} +1 -1
  975. package/static/{chunk-M7IFVC5D.js → chunk-KZS7CTNR.js} +1 -1
  976. package/static/{chunk-P2IJCGWD.js → chunk-L5IHUVXL.js} +1 -1
  977. package/static/{chunk-DXESTGOH.js → chunk-L7RRX2M3.js} +1 -1
  978. package/static/{chunk-WE3ISL7O.js → chunk-LGWJ2WKU.js} +1 -1
  979. package/static/{chunk-OKI3N5AI.js → chunk-MLC7JK2H.js} +2 -2
  980. package/static/{chunk-NG7QWUFM.js → chunk-MOHNYW2A.js} +1 -1
  981. package/static/{chunk-SQYWQUL4.js → chunk-NCDUOVMW.js} +1 -1
  982. package/static/chunk-NGUAJIGI.js +1 -0
  983. package/static/{chunk-OYPJUVD6.js → chunk-NIPP6JDI.js} +1 -1
  984. package/static/{chunk-Y433XOAJ.js → chunk-NMTBMHUL.js} +1 -1
  985. package/static/chunk-O4XXMZFX.js +4 -0
  986. package/static/{chunk-IOP3ON2H.js → chunk-OANZITPM.js} +1 -1
  987. package/static/{chunk-WJFKUJJX.js → chunk-OGE4SAHU.js} +1 -1
  988. package/static/{chunk-7EHP6HO3.js → chunk-OI3ME22C.js} +1 -1
  989. package/static/{chunk-D4XDSS6P.js → chunk-Q3EGCMF5.js} +1 -1
  990. package/static/{chunk-TQBCGNFG.js → chunk-QF2NSHZA.js} +1 -1
  991. package/static/{chunk-RBBMH2FM.js → chunk-QKN6LAAA.js} +1 -1
  992. package/static/{chunk-J45SD6RC.js → chunk-QRFESU5O.js} +2 -2
  993. package/static/chunk-QVRVFYJH.js +1 -0
  994. package/static/{chunk-BAHNSFET.js → chunk-RFJIPIOK.js} +1 -1
  995. package/static/{chunk-IZ7TCHUW.js → chunk-RLL634K4.js} +1 -1
  996. package/static/{chunk-MOWL3ILT.js → chunk-RS2OFKWP.js} +1 -1
  997. package/static/{chunk-WM56LPJ3.js → chunk-RWAAC3A4.js} +1 -1
  998. package/static/{chunk-F3GMI6OL.js → chunk-S5Y64DDS.js} +1 -1
  999. package/static/{chunk-VNNLMUK7.js → chunk-SLG5KDU6.js} +1 -1
  1000. package/static/chunk-TJ4CVFEL.js +1 -0
  1001. package/static/{chunk-SAN35XTD.js → chunk-TWCGKSYE.js} +1 -1
  1002. package/static/{chunk-EUKVDBBK.js → chunk-UMDRE4S7.js} +1 -1
  1003. package/static/{chunk-YKCUUBZP.js → chunk-VRIOLRYR.js} +4 -4
  1004. package/static/chunk-VS4O2XDP.js +1 -0
  1005. package/static/{chunk-2MRTBCSV.js → chunk-VSBFNFOM.js} +1 -1
  1006. package/static/{chunk-CTPKDDVI.js → chunk-WN4WXCVK.js} +1 -1
  1007. package/static/{chunk-2AA3WMW5.js → chunk-WX7RXW7K.js} +1 -1
  1008. package/static/{chunk-J2BUPRCZ.js → chunk-XC4POKR3.js} +2 -2
  1009. package/static/{chunk-AXLDYLIO.js → chunk-Y4AUYQTG.js} +1 -1
  1010. package/static/{chunk-RPHWIW7S.js → chunk-YMIXHRJQ.js} +1 -7
  1011. package/static/{chunk-AFNUBQMD.js → chunk-ZUNKFAKP.js} +1 -1
  1012. package/static/index.html +3 -3
  1013. package/static/main-QN4UCOC5.js +5 -0
  1014. package/static/{styles-PD6764CP.css → styles-46GLIE7Y.css} +1 -1
  1015. package/server/authentication/constants/auth-ldap.js.map +0 -1
  1016. package/server/authentication/dto/two-fa-verify.dto.js.map +0 -1
  1017. package/server/authentication/guards/auth-two-fa-guard.js.map +0 -1
  1018. package/server/authentication/interfaces/two-fa-setup.interface.js +0 -10
  1019. package/server/authentication/interfaces/two-fa-setup.interface.js.map +0 -1
  1020. package/server/authentication/models/auth-method.js +0 -18
  1021. package/server/authentication/models/auth-method.js.map +0 -1
  1022. package/server/authentication/services/auth-manager.service.js.map +0 -1
  1023. package/server/authentication/services/auth-manager.service.spec.js.map +0 -1
  1024. package/server/authentication/services/auth-methods/auth-method-database.service.js.map +0 -1
  1025. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +0 -1
  1026. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +0 -326
  1027. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +0 -1
  1028. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +0 -534
  1029. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +0 -1
  1030. package/server/authentication/services/auth-methods/auth-method-two-fa.service.js.map +0 -1
  1031. package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js.map +0 -1
  1032. package/static/chunk-3I6NPM62.js +0 -1
  1033. package/static/chunk-GCPX3EFC.js +0 -1
  1034. package/static/chunk-KBUIDMCK.js +0 -1
  1035. package/static/chunk-KY6MNZLC.js +0 -1
  1036. package/static/chunk-MPWD4VMY.js +0 -1
  1037. package/static/chunk-QQAF3MLL.js +0 -1
  1038. package/static/chunk-VHZKPUWE.js +0 -4
  1039. package/static/chunk-YWLMFOB4.js +0 -3
  1040. package/static/main-ZXEMCBMI.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/guards/roles.guard.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 { CanActivate, ExecutionContext, Injectable, Logger } from '@nestjs/common'\nimport { Reflector } from '@nestjs/core'\nimport { FastifyAuthenticatedRequest } from '../../../authentication/interfaces/auth-request.interface'\nimport { USER_ROLE } from '../constants/user'\nimport { UserHaveRole } from '../decorators/roles.decorator'\n\n@Injectable()\nexport class UserRolesGuard implements CanActivate {\n private readonly logger = new Logger(UserRolesGuard.name)\n\n constructor(private readonly reflector: Reflector) {}\n\n canActivate(ctx: ExecutionContext): boolean {\n const role: USER_ROLE = this.reflector.getAllAndOverride(UserHaveRole, [ctx.getHandler(), ctx.getClass()])\n if (typeof role === 'object') {\n // used to bypass the check, the guard is called without argument, the value is '{}'\n return true\n }\n if (role === undefined || !Number.isFinite(role)) {\n this.logger.warn(`no role defined on : ${ctx.getClass().name}:${ctx.getHandler().name}`)\n return false\n }\n const req: FastifyAuthenticatedRequest = ctx.switchToHttp().getRequest()\n const authorized: boolean = req.user.haveRole(role)\n if (!authorized) {\n this.logger.warn(`does not have role : ${USER_ROLE[role]}`)\n }\n return authorized\n }\n}\n"],"names":["UserRolesGuard","canActivate","ctx","role","reflector","getAllAndOverride","UserHaveRole","getHandler","getClass","undefined","Number","isFinite","logger","warn","name","req","switchToHttp","getRequest","authorized","user","haveRole","USER_ROLE","Logger"],"mappings":"AAAA;;;;CAIC;;;;+BASYA;;;eAAAA;;;wBAPqD;sBACxC;sBAEA;gCACG;;;;;;;;;;AAGtB,IAAA,AAAMA,iBAAN,MAAMA;IAKXC,YAAYC,GAAqB,EAAW;QAC1C,MAAMC,OAAkB,IAAI,CAACC,SAAS,CAACC,iBAAiB,CAACC,4BAAY,EAAE;YAACJ,IAAIK,UAAU;YAAIL,IAAIM,QAAQ;SAAG;QACzG,IAAI,OAAOL,SAAS,UAAU;YAC5B,oFAAoF;YACpF,OAAO;QACT;QACA,IAAIA,SAASM,aAAa,CAACC,OAAOC,QAAQ,CAACR,OAAO;YAChD,IAAI,CAACS,MAAM,CAACC,IAAI,CAAC,CAAC,qBAAqB,EAAEX,IAAIM,QAAQ,GAAGM,IAAI,CAAC,CAAC,EAAEZ,IAAIK,UAAU,GAAGO,IAAI,EAAE;YACvF,OAAO;QACT;QACA,MAAMC,MAAmCb,IAAIc,YAAY,GAAGC,UAAU;QACtE,MAAMC,aAAsBH,IAAII,IAAI,CAACC,QAAQ,CAACjB;QAC9C,IAAI,CAACe,YAAY;YACf,IAAI,CAACN,MAAM,CAACC,IAAI,CAAC,CAAC,qBAAqB,EAAEQ,eAAS,CAAClB,KAAK,EAAE;QAC5D;QACA,OAAOe;IACT;IAlBA,YAAY,AAAiBd,SAAoB,CAAE;aAAtBA,YAAAA;aAFZQ,SAAS,IAAIU,cAAM,CAACtB,eAAec,IAAI;IAEJ;AAmBtD"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/guards/roles.guard.ts"],"sourcesContent":["import { CanActivate, ExecutionContext, Injectable, Logger } from '@nestjs/common'\nimport { Reflector } from '@nestjs/core'\nimport { FastifyAuthenticatedRequest } from '../../../authentication/interfaces/auth-request.interface'\nimport { USER_ROLE } from '../constants/user'\nimport { UserHaveRole } from '../decorators/roles.decorator'\n\n@Injectable()\nexport class UserRolesGuard implements CanActivate {\n private readonly logger = new Logger(UserRolesGuard.name)\n\n constructor(private readonly reflector: Reflector) {}\n\n canActivate(ctx: ExecutionContext): boolean {\n const role: USER_ROLE = this.reflector.getAllAndOverride(UserHaveRole, [ctx.getHandler(), ctx.getClass()])\n if (typeof role === 'object') {\n // used to bypass the check, the guard is called without argument, the value is '{}'\n return true\n }\n if (role === undefined || !Number.isFinite(role)) {\n this.logger.warn(`no role defined on : ${ctx.getClass().name}:${ctx.getHandler().name}`)\n return false\n }\n const req: FastifyAuthenticatedRequest = ctx.switchToHttp().getRequest()\n const authorized: boolean = req.user.haveRole(role)\n if (!authorized) {\n this.logger.warn(`does not have role : ${USER_ROLE[role]}`)\n }\n return authorized\n }\n}\n"],"names":["UserRolesGuard","canActivate","ctx","role","reflector","getAllAndOverride","UserHaveRole","getHandler","getClass","undefined","Number","isFinite","logger","warn","name","req","switchToHttp","getRequest","authorized","user","haveRole","USER_ROLE","Logger"],"mappings":";;;;+BAOaA;;;eAAAA;;;wBAPqD;sBACxC;sBAEA;gCACG;;;;;;;;;;AAGtB,IAAA,AAAMA,iBAAN,MAAMA;IAKXC,YAAYC,GAAqB,EAAW;QAC1C,MAAMC,OAAkB,IAAI,CAACC,SAAS,CAACC,iBAAiB,CAACC,4BAAY,EAAE;YAACJ,IAAIK,UAAU;YAAIL,IAAIM,QAAQ;SAAG;QACzG,IAAI,OAAOL,SAAS,UAAU;YAC5B,oFAAoF;YACpF,OAAO;QACT;QACA,IAAIA,SAASM,aAAa,CAACC,OAAOC,QAAQ,CAACR,OAAO;YAChD,IAAI,CAACS,MAAM,CAACC,IAAI,CAAC,CAAC,qBAAqB,EAAEX,IAAIM,QAAQ,GAAGM,IAAI,CAAC,CAAC,EAAEZ,IAAIK,UAAU,GAAGO,IAAI,EAAE;YACvF,OAAO;QACT;QACA,MAAMC,MAAmCb,IAAIc,YAAY,GAAGC,UAAU;QACtE,MAAMC,aAAsBH,IAAII,IAAI,CAACC,QAAQ,CAACjB;QAC9C,IAAI,CAACe,YAAY;YACf,IAAI,CAACN,MAAM,CAACC,IAAI,CAAC,CAAC,qBAAqB,EAAEQ,eAAS,CAAClB,KAAK,EAAE;QAC5D;QACA,OAAOe;IACT;IAlBA,YAAY,AAAiBd,SAAoB,CAAE;aAAtBA,YAAAA;aAFZQ,SAAS,IAAIU,cAAM,CAACtB,eAAec,IAAI;IAEJ;AAmBtD"}
@@ -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/guards/roles.guard.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 { createMock, DeepMocked } from '@golevelup/ts-jest'\nimport { ExecutionContext, Logger } from '@nestjs/common'\nimport { Reflector } from '@nestjs/core'\nimport { USER_ROLE } from '../constants/user'\nimport { UserHaveRole } from '../decorators/roles.decorator'\nimport { UserModel } from '../models/user.model'\nimport { generateUserTest } from '../utils/test'\nimport { UserRolesGuard } from './roles.guard'\n\ndescribe(UserRolesGuard.name, () => {\n let reflector: Reflector\n let rolesGuard: UserRolesGuard\n let userTest: UserModel\n let context: DeepMocked<ExecutionContext>\n\n beforeAll(async () => {\n reflector = new Reflector()\n rolesGuard = new UserRolesGuard(reflector)\n userTest = new UserModel(generateUserTest())\n Logger.overrideLogger(['fatal'])\n })\n\n it('should be defined', () => {\n expect(reflector).toBeDefined()\n expect(rolesGuard).toBeDefined()\n expect(userTest).toBeDefined()\n })\n\n it('should pass with a valid role', async () => {\n userTest.role = USER_ROLE.GUEST\n context = createMock<ExecutionContext>()\n UserHaveRole(USER_ROLE.GUEST)(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBe(true)\n })\n\n it('should pass with a higher user role', async () => {\n userTest.role = USER_ROLE.USER\n context = createMock<ExecutionContext>()\n UserHaveRole(USER_ROLE.GUEST)(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBe(true)\n })\n\n it('should not pass with a lower role', async () => {\n userTest.role = USER_ROLE.GUEST\n context = createMock<ExecutionContext>()\n UserHaveRole(USER_ROLE.USER)(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBeFalsy()\n })\n\n it('should not pass with an undefined user role', async () => {\n userTest.role = undefined\n context = createMock<ExecutionContext>()\n UserHaveRole(USER_ROLE.USER)(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBeFalsy()\n })\n\n it('should not pass with a missing decorator', async () => {\n userTest.role = USER_ROLE.USER\n context = createMock<ExecutionContext>()\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBeFalsy()\n })\n\n it('should pass with an empty decorator', async () => {\n userTest.role = USER_ROLE.USER\n context = createMock<ExecutionContext>()\n UserHaveRole()(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBeTruthy()\n })\n})\n"],"names":["describe","UserRolesGuard","name","reflector","rolesGuard","userTest","context","beforeAll","Reflector","UserModel","generateUserTest","Logger","overrideLogger","it","expect","toBeDefined","role","USER_ROLE","GUEST","createMock","UserHaveRole","getHandler","switchToHttp","getRequest","mockReturnValue","user","canActivate","toBe","USER","toBeFalsy","undefined","toBeTruthy"],"mappings":"AAAA;;;;CAIC;;;;wBAEsC;wBACE;sBACf;sBACA;gCACG;2BACH;sBACO;4BACF;AAE/BA,SAASC,0BAAc,CAACC,IAAI,EAAE;IAC5B,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJC,UAAU;QACRJ,YAAY,IAAIK,eAAS;QACzBJ,aAAa,IAAIH,0BAAc,CAACE;QAChCE,WAAW,IAAII,oBAAS,CAACC,IAAAA,sBAAgB;QACzCC,cAAM,CAACC,cAAc,CAAC;YAAC;SAAQ;IACjC;IAEAC,GAAG,qBAAqB;QACtBC,OAAOX,WAAWY,WAAW;QAC7BD,OAAOV,YAAYW,WAAW;QAC9BD,OAAOT,UAAUU,WAAW;IAC9B;IAEAF,GAAG,iCAAiC;QAClCR,SAASW,IAAI,GAAGC,eAAS,CAACC,KAAK;QAC/BZ,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,EAACH,eAAS,CAACC,KAAK,EAAEZ,QAAQe,UAAU;QAChDf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUqB,IAAI,CAAC;IAC/C;IAEAd,GAAG,uCAAuC;QACxCR,SAASW,IAAI,GAAGC,eAAS,CAACW,IAAI;QAC9BtB,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,EAACH,eAAS,CAACC,KAAK,EAAEZ,QAAQe,UAAU;QAChDf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUqB,IAAI,CAAC;IAC/C;IAEAd,GAAG,qCAAqC;QACtCR,SAASW,IAAI,GAAGC,eAAS,CAACC,KAAK;QAC/BZ,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,EAACH,eAAS,CAACW,IAAI,EAAEtB,QAAQe,UAAU;QAC/Cf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUuB,SAAS;IACnD;IAEAhB,GAAG,+CAA+C;QAChDR,SAASW,IAAI,GAAGc;QAChBxB,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,EAACH,eAAS,CAACW,IAAI,EAAEtB,QAAQe,UAAU;QAC/Cf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUuB,SAAS;IACnD;IAEAhB,GAAG,4CAA4C;QAC7CR,SAASW,IAAI,GAAGC,eAAS,CAACW,IAAI;QAC9BtB,UAAUa,IAAAA,kBAAU;QACpBb,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUuB,SAAS;IACnD;IAEAhB,GAAG,uCAAuC;QACxCR,SAASW,IAAI,GAAGC,eAAS,CAACW,IAAI;QAC9BtB,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,IAAGd,QAAQe,UAAU;QACjCf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUyB,UAAU;IACpD;AACF"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/guards/roles.guard.spec.ts"],"sourcesContent":["import { createMock, DeepMocked } from '@golevelup/ts-jest'\nimport { ExecutionContext, Logger } from '@nestjs/common'\nimport { Reflector } from '@nestjs/core'\nimport { USER_ROLE } from '../constants/user'\nimport { UserHaveRole } from '../decorators/roles.decorator'\nimport { UserModel } from '../models/user.model'\nimport { generateUserTest } from '../utils/test'\nimport { UserRolesGuard } from './roles.guard'\n\ndescribe(UserRolesGuard.name, () => {\n let reflector: Reflector\n let rolesGuard: UserRolesGuard\n let userTest: UserModel\n let context: DeepMocked<ExecutionContext>\n\n beforeAll(async () => {\n reflector = new Reflector()\n rolesGuard = new UserRolesGuard(reflector)\n userTest = new UserModel(generateUserTest())\n Logger.overrideLogger(['fatal'])\n })\n\n it('should be defined', () => {\n expect(reflector).toBeDefined()\n expect(rolesGuard).toBeDefined()\n expect(userTest).toBeDefined()\n })\n\n it('should pass with a valid role', async () => {\n userTest.role = USER_ROLE.GUEST\n context = createMock<ExecutionContext>()\n UserHaveRole(USER_ROLE.GUEST)(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBe(true)\n })\n\n it('should pass with a higher user role', async () => {\n userTest.role = USER_ROLE.USER\n context = createMock<ExecutionContext>()\n UserHaveRole(USER_ROLE.GUEST)(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBe(true)\n })\n\n it('should not pass with a lower role', async () => {\n userTest.role = USER_ROLE.GUEST\n context = createMock<ExecutionContext>()\n UserHaveRole(USER_ROLE.USER)(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBeFalsy()\n })\n\n it('should not pass with an undefined user role', async () => {\n userTest.role = undefined\n context = createMock<ExecutionContext>()\n UserHaveRole(USER_ROLE.USER)(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBeFalsy()\n })\n\n it('should not pass with a missing decorator', async () => {\n userTest.role = USER_ROLE.USER\n context = createMock<ExecutionContext>()\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBeFalsy()\n })\n\n it('should pass with an empty decorator', async () => {\n userTest.role = USER_ROLE.USER\n context = createMock<ExecutionContext>()\n UserHaveRole()(context.getHandler())\n context.switchToHttp().getRequest.mockReturnValue({\n user: userTest\n })\n expect(rolesGuard.canActivate(context)).toBeTruthy()\n })\n})\n"],"names":["describe","UserRolesGuard","name","reflector","rolesGuard","userTest","context","beforeAll","Reflector","UserModel","generateUserTest","Logger","overrideLogger","it","expect","toBeDefined","role","USER_ROLE","GUEST","createMock","UserHaveRole","getHandler","switchToHttp","getRequest","mockReturnValue","user","canActivate","toBe","USER","toBeFalsy","undefined","toBeTruthy"],"mappings":";;;;wBAAuC;wBACE;sBACf;sBACA;gCACG;2BACH;sBACO;4BACF;AAE/BA,SAASC,0BAAc,CAACC,IAAI,EAAE;IAC5B,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJC,UAAU;QACRJ,YAAY,IAAIK,eAAS;QACzBJ,aAAa,IAAIH,0BAAc,CAACE;QAChCE,WAAW,IAAII,oBAAS,CAACC,IAAAA,sBAAgB;QACzCC,cAAM,CAACC,cAAc,CAAC;YAAC;SAAQ;IACjC;IAEAC,GAAG,qBAAqB;QACtBC,OAAOX,WAAWY,WAAW;QAC7BD,OAAOV,YAAYW,WAAW;QAC9BD,OAAOT,UAAUU,WAAW;IAC9B;IAEAF,GAAG,iCAAiC;QAClCR,SAASW,IAAI,GAAGC,eAAS,CAACC,KAAK;QAC/BZ,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,EAACH,eAAS,CAACC,KAAK,EAAEZ,QAAQe,UAAU;QAChDf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUqB,IAAI,CAAC;IAC/C;IAEAd,GAAG,uCAAuC;QACxCR,SAASW,IAAI,GAAGC,eAAS,CAACW,IAAI;QAC9BtB,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,EAACH,eAAS,CAACC,KAAK,EAAEZ,QAAQe,UAAU;QAChDf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUqB,IAAI,CAAC;IAC/C;IAEAd,GAAG,qCAAqC;QACtCR,SAASW,IAAI,GAAGC,eAAS,CAACC,KAAK;QAC/BZ,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,EAACH,eAAS,CAACW,IAAI,EAAEtB,QAAQe,UAAU;QAC/Cf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUuB,SAAS;IACnD;IAEAhB,GAAG,+CAA+C;QAChDR,SAASW,IAAI,GAAGc;QAChBxB,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,EAACH,eAAS,CAACW,IAAI,EAAEtB,QAAQe,UAAU;QAC/Cf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUuB,SAAS;IACnD;IAEAhB,GAAG,4CAA4C;QAC7CR,SAASW,IAAI,GAAGC,eAAS,CAACW,IAAI;QAC9BtB,UAAUa,IAAAA,kBAAU;QACpBb,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUuB,SAAS;IACnD;IAEAhB,GAAG,uCAAuC;QACxCR,SAASW,IAAI,GAAGC,eAAS,CAACW,IAAI;QAC9BtB,UAAUa,IAAAA,kBAAU;QACpBC,IAAAA,4BAAY,IAAGd,QAAQe,UAAU;QACjCf,QAAQgB,YAAY,GAAGC,UAAU,CAACC,eAAe,CAAC;YAChDC,MAAMpB;QACR;QACAS,OAAOV,WAAWsB,WAAW,CAACpB,UAAUyB,UAAU;IACpD;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/users/interfaces/admin-group.interface.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 { GROUP_TYPE, GROUP_VISIBILITY } from '../constants/group'\nimport type { Group } from '../schemas/group.interface'\n\nexport interface AdminGroup extends Omit<Group, 'parentId' | 'type'> {\n id: number\n name: string\n type: GROUP_TYPE\n description: string\n permissions: string\n visibility: GROUP_VISIBILITY\n createdAt: Date\n modifiedAt: Date\n parent: Pick<Group, 'id' | 'name'>\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/admin-group.interface.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/admin-user.interface.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 type { User } from '../schemas/user.interface'\nimport type { Member } from './member.interface'\n\nexport type AdminUser = Partial<User> & { fullName: string; groups?: Member[]; twoFaEnabled?: boolean }\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/admin-user.interface.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/group-browse.interface.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 { GROUP_TYPE } from '../constants/group'\nimport { USER_GROUP_ROLE } from '../constants/user'\nimport type { Member } from './member.interface'\n\nexport interface GroupBrowse {\n parentGroup: { id: number; name: string; type: GROUP_TYPE; role?: USER_GROUP_ROLE }\n members: Member[]\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/group-browse.interface.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/group-member.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 type { MEMBER_TYPE } from '../constants/member'\nimport type { Group } from '../schemas/group.interface'\nimport type { Member } from './member.interface'\n\nexport type GroupMember = Pick<Group, 'id' | 'name' | 'description' | 'createdAt' | 'modifiedAt'> & { type: MEMBER_TYPE; counts?: { users: number } }\n\nexport type GroupWithMembers = GroupMember & {\n members: Member[]\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/group-member.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/guest-user.interface.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 type { User } from '../schemas/user.interface'\nimport type { Member } from './member.interface'\n\nexport type GuestUser = Partial<User> & {\n fullName: string\n managers?: Member[]\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/guest-user.interface.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/member.interface.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 type { CreateOrUpdateLinkDto } from '../../links/dto/create-or-update-link.dto'\nimport type { SPACE_ROLE } from '../../spaces/constants/spaces'\nimport type { MEMBER_TYPE } from '../constants/member'\nimport type { USER_GROUP_ROLE } from '../constants/user'\n\nexport interface Member {\n id: number\n name: string // user full name or group name\n description: string // user email or group description\n type: MEMBER_TYPE\n login?: string // only for user\n linkId?: number // only for link\n linkSettings?: CreateOrUpdateLinkDto // only for link\n permissions?: string\n createdAt?: Date\n modifiedAt?: Date\n spaceRole?: SPACE_ROLE // only for user\n groupRole?: USER_GROUP_ROLE // only for groups\n counts?: { users?: number; groups?: number } // only for admin group members\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/member.interface.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/owner.interface.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\nexport interface Owner {\n id?: number\n login: string\n email: string\n fullName: string\n currentAccess?: Date\n createdAt?: Date\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/owner.interface.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/user-secrets.interface.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 { AUTH_SCOPE } from '../../../authentication/constants/scope'\nimport { USER_SECRET } from '../constants/user'\n\nexport interface UserAppPassword {\n name: string\n app: AUTH_SCOPE\n password: string\n expiration: Date\n currentIp: string\n lastIp: string\n currentAccess: Date\n lastAccess: Date\n createdAt: Date\n}\n\nexport interface UserSecrets {\n [USER_SECRET.TWO_FA_SECRET]?: string\n [USER_SECRET.RECOVERY_CODES]?: string[]\n [USER_SECRET.APP_PASSWORDS]?: UserAppPassword[]\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/user-secrets.interface.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/websocket.interface.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 type { USER_ONLINE_STATUS } from '../constants/user'\n\nexport interface UserOnline {\n id: number\n login: string\n email: string\n fullName: string\n onlineStatus: USER_ONLINE_STATUS\n}\n\nexport interface EventUpdateOnlineStatus {\n userId: number\n status: USER_ONLINE_STATUS\n}\n\nexport interface EventChangeOnlineStatus {\n status: USER_ONLINE_STATUS\n store: boolean\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/interfaces/websocket.interface.ts"],"names":[],"mappings":""}
@@ -1,8 +1,4 @@
1
- /*
2
- * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
- * This file is part of Sync-in | The open source file sync and share solution
4
- * See the LICENSE file for licensing details
5
- */ "use strict";
1
+ "use strict";
6
2
  Object.defineProperty(exports, "__esModule", {
7
3
  value: true
8
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/users/models/user.model.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 { Exclude, Expose } from 'class-transformer'\nimport fs from 'node:fs/promises'\nimport path from 'node:path'\nimport { popFromObject } from '../../../common/shared'\nimport { configuration } from '../../../configuration/config.environment'\nimport { SPACE_REPOSITORY } from '../../spaces/constants/spaces'\nimport { GUEST_PERMISSION, USER_PATH, USER_PERMISSION, USER_PERMS_SEP, USER_ROLE } from '../constants/user'\nimport type { Owner } from '../interfaces/owner.interface'\nimport type { UserSecrets } from '../interfaces/user-secrets.interface'\nimport type { User } from '../schemas/user.interface'\n\nexport class UserModel implements User {\n id: number\n login: string\n email: string\n firstName: string\n lastName: string\n role: number\n language: string\n isActive: boolean\n notification: number\n onlineStatus: number\n permissions: string\n storageUsage: number\n storageQuota: number\n storageIndexing: boolean\n passwordAttempts: number\n currentIp: string\n lastIp: string\n currentAccess: Date\n lastAccess: Date\n createdAt: Date\n // exclusions\n @Exclude()\n password: string\n @Exclude()\n secrets: UserSecrets\n @Exclude()\n // only used on backend\n impersonatedFromId?: number\n impersonatedClientId?: string\n // used for desktop|cmd app\n clientId?: string\n\n // outside db schema\n fullName: string\n impersonated?: boolean\n avatarBase64?: string\n // permissions as a list\n applications: string[] = []\n @Exclude({ toPlainOnly: true })\n exp?: number // refresh token expiration needed to refresh\n\n constructor(props: Partial<User> & { exp?: number; twoFaEnabled?: boolean }, removePassword = true) {\n // User model can be instantiated with data from the database or from a token payload\n this.initSecrets(props)\n Object.assign(this, props)\n if (removePassword) {\n // always remove the password field from model for obvious security reasons\n // do not remove it from `props` to not mutate the object\n this.removePassword()\n }\n this.setFullName()\n this.setApplications()\n this.setProfile()\n }\n\n private _homePath: string\n\n get homePath(): string {\n if (this.isLink || this.isGuest) {\n return (this._homePath ||= path.join(configuration.applications.files.tmpPath, this.isGuest ? 'guests' : 'links', this.login))\n }\n return (this._homePath ||= path.join(configuration.applications.files.usersPath, this.login))\n }\n\n private _filesPath: string\n\n get filesPath(): string {\n return (this._filesPath ||= path.join(this.homePath, SPACE_REPOSITORY.FILES))\n }\n\n private _trashPath: string\n\n get trashPath(): string {\n return (this._trashPath ||= path.join(this.homePath, SPACE_REPOSITORY.TRASH))\n }\n\n private _tmpPath: string\n\n get tmpPath(): string {\n return (this._tmpPath ||= path.join(this.homePath, USER_PATH.TMP))\n }\n\n private _tasksPath: string\n\n get tasksPath(): string {\n return (this._tasksPath ||= path.join(this.tmpPath, USER_PATH.TASKS))\n }\n\n @Expose()\n get isAdmin(): boolean {\n return this.role === USER_ROLE.ADMINISTRATOR\n }\n\n @Expose()\n get isUser(): boolean {\n return this.role === USER_ROLE.USER || this.role === USER_ROLE.ADMINISTRATOR\n }\n\n @Expose()\n get isGuest(): boolean {\n return this.role === USER_ROLE.GUEST\n }\n\n @Expose()\n get isLink(): boolean {\n return this.role === USER_ROLE.LINK\n }\n\n @Expose()\n get quotaIsExceeded(): boolean {\n return this.storageQuota !== null && this.storageUsage >= this.storageQuota\n }\n\n @Expose()\n get twoFaEnabled(): boolean {\n return !!this.secrets?.twoFaSecret\n }\n\n @Expose()\n get appPasswords(): number {\n return this.secrets?.appPasswords?.length || 0\n }\n\n static getHomePath(userLogin: string, isGuest = false, isLink = false): string {\n if (isGuest || isLink) {\n return path.join(configuration.applications.files.tmpPath, isGuest ? 'guests' : 'links', userLogin)\n }\n return path.join(configuration.applications.files.usersPath, userLogin)\n }\n\n static getFilesPath(userLogin: string): string {\n return path.join(UserModel.getHomePath(userLogin), SPACE_REPOSITORY.FILES)\n }\n\n static getTrashPath(userLogin: string): string {\n return path.join(UserModel.getHomePath(userLogin), SPACE_REPOSITORY.TRASH)\n }\n\n static getTasksPath(userLogin: string, isGuest = false, isLink = false): string {\n return path.join(UserModel.getHomePath(userLogin, isGuest, isLink), USER_PATH.TMP, USER_PATH.TASKS)\n }\n\n static getRepositoryPath(userLogin: string, inTrash = false): string {\n if (inTrash) return UserModel.getTrashPath(userLogin)\n return UserModel.getFilesPath(userLogin)\n }\n\n toString(): string {\n return `*User <${this.login}> (${this.id})*`\n }\n\n removePassword() {\n delete this.password\n }\n\n setFullName(force = false) {\n if (!this.fullName || force) {\n this.fullName = `${this.firstName || ''} ${this.lastName || ''}`.trim()\n }\n }\n\n async makePaths(): Promise<void> {\n if (this.isGuest || this.isLink) {\n await fs.mkdir(this.tasksPath, { recursive: true })\n } else {\n for (const p of [this.filesPath, this.trashPath, this.tasksPath]) {\n await fs.mkdir(p, { recursive: true })\n }\n }\n }\n\n asOwner(): Owner {\n return { id: this.id, login: this.login, email: this.email, fullName: this.fullName }\n }\n\n getInitials(): string {\n let initials: { f: string; l: string }\n if (this.firstName) {\n if (this.lastName) {\n initials = { f: this.firstName.charAt(0), l: this.lastName.charAt(0) }\n }\n initials = { f: this.firstName.charAt(0), l: this.firstName.charAt(1) }\n } else {\n initials = { f: this.login.charAt(0), l: this.login.charAt(1) }\n }\n return `${initials.f.toUpperCase()}${initials.l.toLowerCase()}`\n }\n\n havePermission(permission: string): boolean {\n if (this.isAdmin) {\n return true\n }\n if (permission === USER_PERMISSION.PERSONAL_SPACE && this.isGuest) {\n return false\n }\n return this.applications.indexOf(permission) !== -1\n }\n\n haveRole(role: number): boolean {\n return this.role <= role\n }\n\n private initSecrets(props: Partial<UserModel>) {\n // Remove the `twoFaEnabled` property to avoid conflicts with the current getter when using `plainToClass` with `class-validator`\n // The `props` variable may be empty when the class is instantiated using `plainToClass`\n if (props && 'twoFaEnabled' in props) {\n // Only used when the User model is instantiated from a token payload\n // Set a `twoFaSecret` property (boolean) on the `secrets` property so that the `twoFaEnabled` getter returns `true`\n this.secrets = { twoFaSecret: popFromObject('twoFaEnabled', props) }\n }\n }\n\n private setProfile() {\n if (this.isLink) {\n this.login = `Link (${this.id})`\n this.email = 'guest-link@sync-in'\n }\n }\n\n private setApplications() {\n if (this.isGuest) {\n // dynamically set the permissions\n this.applications = Object.values(GUEST_PERMISSION)\n } else if (this.permissions) {\n this.applications = this.permissions.split(USER_PERMS_SEP)\n }\n delete this.permissions\n }\n}\n"],"names":["UserModel","homePath","isLink","isGuest","_homePath","path","join","configuration","applications","files","tmpPath","login","usersPath","filesPath","_filesPath","SPACE_REPOSITORY","FILES","trashPath","_trashPath","TRASH","_tmpPath","USER_PATH","TMP","tasksPath","_tasksPath","TASKS","isAdmin","role","USER_ROLE","ADMINISTRATOR","isUser","USER","GUEST","LINK","quotaIsExceeded","storageQuota","storageUsage","twoFaEnabled","secrets","twoFaSecret","appPasswords","length","getHomePath","userLogin","getFilesPath","getTrashPath","getTasksPath","getRepositoryPath","inTrash","toString","id","removePassword","password","setFullName","force","fullName","firstName","lastName","trim","makePaths","fs","mkdir","recursive","p","asOwner","email","getInitials","initials","f","charAt","l","toUpperCase","toLowerCase","havePermission","permission","USER_PERMISSION","PERSONAL_SPACE","indexOf","haveRole","initSecrets","props","popFromObject","setProfile","setApplications","Object","values","GUEST_PERMISSION","permissions","split","USER_PERMS_SEP","assign","toPlainOnly"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/models/user.model.ts"],"sourcesContent":["import { Exclude, Expose } from 'class-transformer'\nimport fs from 'node:fs/promises'\nimport path from 'node:path'\nimport { popFromObject } from '../../../common/shared'\nimport { configuration } from '../../../configuration/config.environment'\nimport { SPACE_REPOSITORY } from '../../spaces/constants/spaces'\nimport { GUEST_PERMISSION, USER_PATH, USER_PERMISSION, USER_PERMS_SEP, USER_ROLE } from '../constants/user'\nimport type { Owner } from '../interfaces/owner.interface'\nimport type { UserSecrets } from '../interfaces/user-secrets.interface'\nimport type { User } from '../schemas/user.interface'\n\nexport class UserModel implements User {\n id: number\n login: string\n email: string\n firstName: string\n lastName: string\n role: number\n language: string\n isActive: boolean\n notification: number\n onlineStatus: number\n permissions: string\n storageUsage: number\n storageQuota: number\n storageIndexing: boolean\n passwordAttempts: number\n currentIp: string\n lastIp: string\n currentAccess: Date\n lastAccess: Date\n createdAt: Date\n // exclusions\n @Exclude()\n password: string\n @Exclude()\n secrets: UserSecrets\n @Exclude()\n // only used on backend\n impersonatedFromId?: number\n impersonatedClientId?: string\n // used for desktop|cmd app\n clientId?: string\n\n // outside db schema\n fullName: string\n impersonated?: boolean\n avatarBase64?: string\n // permissions as a list\n applications: string[] = []\n @Exclude({ toPlainOnly: true })\n exp?: number // refresh token expiration needed to refresh\n\n constructor(props: Partial<User> & { exp?: number; twoFaEnabled?: boolean }, removePassword = true) {\n // User model can be instantiated with data from the database or from a token payload\n this.initSecrets(props)\n Object.assign(this, props)\n if (removePassword) {\n // always remove the password field from model for obvious security reasons\n // do not remove it from `props` to not mutate the object\n this.removePassword()\n }\n this.setFullName()\n this.setApplications()\n this.setProfile()\n }\n\n private _homePath: string\n\n get homePath(): string {\n if (this.isLink || this.isGuest) {\n return (this._homePath ||= path.join(configuration.applications.files.tmpPath, this.isGuest ? 'guests' : 'links', this.login))\n }\n return (this._homePath ||= path.join(configuration.applications.files.usersPath, this.login))\n }\n\n private _filesPath: string\n\n get filesPath(): string {\n return (this._filesPath ||= path.join(this.homePath, SPACE_REPOSITORY.FILES))\n }\n\n private _trashPath: string\n\n get trashPath(): string {\n return (this._trashPath ||= path.join(this.homePath, SPACE_REPOSITORY.TRASH))\n }\n\n private _tmpPath: string\n\n get tmpPath(): string {\n return (this._tmpPath ||= path.join(this.homePath, USER_PATH.TMP))\n }\n\n private _tasksPath: string\n\n get tasksPath(): string {\n return (this._tasksPath ||= path.join(this.tmpPath, USER_PATH.TASKS))\n }\n\n @Expose()\n get isAdmin(): boolean {\n return this.role === USER_ROLE.ADMINISTRATOR\n }\n\n @Expose()\n get isUser(): boolean {\n return this.role === USER_ROLE.USER || this.role === USER_ROLE.ADMINISTRATOR\n }\n\n @Expose()\n get isGuest(): boolean {\n return this.role === USER_ROLE.GUEST\n }\n\n @Expose()\n get isLink(): boolean {\n return this.role === USER_ROLE.LINK\n }\n\n @Expose()\n get quotaIsExceeded(): boolean {\n return this.storageQuota !== null && this.storageUsage >= this.storageQuota\n }\n\n @Expose()\n get twoFaEnabled(): boolean {\n return !!this.secrets?.twoFaSecret\n }\n\n @Expose()\n get appPasswords(): number {\n return this.secrets?.appPasswords?.length || 0\n }\n\n static getHomePath(userLogin: string, isGuest = false, isLink = false): string {\n if (isGuest || isLink) {\n return path.join(configuration.applications.files.tmpPath, isGuest ? 'guests' : 'links', userLogin)\n }\n return path.join(configuration.applications.files.usersPath, userLogin)\n }\n\n static getFilesPath(userLogin: string): string {\n return path.join(UserModel.getHomePath(userLogin), SPACE_REPOSITORY.FILES)\n }\n\n static getTrashPath(userLogin: string): string {\n return path.join(UserModel.getHomePath(userLogin), SPACE_REPOSITORY.TRASH)\n }\n\n static getTasksPath(userLogin: string, isGuest = false, isLink = false): string {\n return path.join(UserModel.getHomePath(userLogin, isGuest, isLink), USER_PATH.TMP, USER_PATH.TASKS)\n }\n\n static getRepositoryPath(userLogin: string, inTrash = false): string {\n if (inTrash) return UserModel.getTrashPath(userLogin)\n return UserModel.getFilesPath(userLogin)\n }\n\n toString(): string {\n return `*User <${this.login}> (${this.id})*`\n }\n\n removePassword() {\n delete this.password\n }\n\n setFullName(force = false) {\n if (!this.fullName || force) {\n this.fullName = `${this.firstName || ''} ${this.lastName || ''}`.trim()\n }\n }\n\n async makePaths(): Promise<void> {\n if (this.isGuest || this.isLink) {\n await fs.mkdir(this.tasksPath, { recursive: true })\n } else {\n for (const p of [this.filesPath, this.trashPath, this.tasksPath]) {\n await fs.mkdir(p, { recursive: true })\n }\n }\n }\n\n asOwner(): Owner {\n return { id: this.id, login: this.login, email: this.email, fullName: this.fullName }\n }\n\n getInitials(): string {\n let initials: { f: string; l: string }\n if (this.firstName) {\n if (this.lastName) {\n initials = { f: this.firstName.charAt(0), l: this.lastName.charAt(0) }\n }\n initials = { f: this.firstName.charAt(0), l: this.firstName.charAt(1) }\n } else {\n initials = { f: this.login.charAt(0), l: this.login.charAt(1) }\n }\n return `${initials.f.toUpperCase()}${initials.l.toLowerCase()}`\n }\n\n havePermission(permission: string): boolean {\n if (this.isAdmin) {\n return true\n }\n if (permission === USER_PERMISSION.PERSONAL_SPACE && this.isGuest) {\n return false\n }\n return this.applications.indexOf(permission) !== -1\n }\n\n haveRole(role: number): boolean {\n return this.role <= role\n }\n\n private initSecrets(props: Partial<UserModel>) {\n // Remove the `twoFaEnabled` property to avoid conflicts with the current getter when using `plainToClass` with `class-validator`\n // The `props` variable may be empty when the class is instantiated using `plainToClass`\n if (props && 'twoFaEnabled' in props) {\n // Only used when the User model is instantiated from a token payload\n // Set a `twoFaSecret` property (boolean) on the `secrets` property so that the `twoFaEnabled` getter returns `true`\n this.secrets = { twoFaSecret: popFromObject('twoFaEnabled', props) }\n }\n }\n\n private setProfile() {\n if (this.isLink) {\n this.login = `Link (${this.id})`\n this.email = 'guest-link@sync-in'\n }\n }\n\n private setApplications() {\n if (this.isGuest) {\n // dynamically set the permissions\n this.applications = Object.values(GUEST_PERMISSION)\n } else if (this.permissions) {\n this.applications = this.permissions.split(USER_PERMS_SEP)\n }\n delete this.permissions\n }\n}\n"],"names":["UserModel","homePath","isLink","isGuest","_homePath","path","join","configuration","applications","files","tmpPath","login","usersPath","filesPath","_filesPath","SPACE_REPOSITORY","FILES","trashPath","_trashPath","TRASH","_tmpPath","USER_PATH","TMP","tasksPath","_tasksPath","TASKS","isAdmin","role","USER_ROLE","ADMINISTRATOR","isUser","USER","GUEST","LINK","quotaIsExceeded","storageQuota","storageUsage","twoFaEnabled","secrets","twoFaSecret","appPasswords","length","getHomePath","userLogin","getFilesPath","getTrashPath","getTasksPath","getRepositoryPath","inTrash","toString","id","removePassword","password","setFullName","force","fullName","firstName","lastName","trim","makePaths","fs","mkdir","recursive","p","asOwner","email","getInitials","initials","f","charAt","l","toUpperCase","toLowerCase","havePermission","permission","USER_PERMISSION","PERSONAL_SPACE","indexOf","haveRole","initSecrets","props","popFromObject","setProfile","setApplications","Object","values","GUEST_PERMISSION","permissions","split","USER_PERMS_SEP","assign","toPlainOnly"],"mappings":";;;;+BAWaA;;;eAAAA;;;kCAXmB;iEACjB;iEACE;wBACa;mCACA;wBACG;sBACuD;;;;;;;;;;;;;;;AAKjF,IAAA,AAAMA,YAAN,MAAMA;IA0DX,IAAIC,WAAmB;QACrB,IAAI,IAAI,CAACC,MAAM,IAAI,IAAI,CAACC,OAAO,EAAE;YAC/B,OAAQ,IAAI,CAACC,SAAS,KAAKC,iBAAI,CAACC,IAAI,CAACC,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACC,OAAO,EAAE,IAAI,CAACP,OAAO,GAAG,WAAW,SAAS,IAAI,CAACQ,KAAK;QAC9H;QACA,OAAQ,IAAI,CAACP,SAAS,KAAKC,iBAAI,CAACC,IAAI,CAACC,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACG,SAAS,EAAE,IAAI,CAACD,KAAK;IAC7F;IAIA,IAAIE,YAAoB;QACtB,OAAQ,IAAI,CAACC,UAAU,KAAKT,iBAAI,CAACC,IAAI,CAAC,IAAI,CAACL,QAAQ,EAAEc,wBAAgB,CAACC,KAAK;IAC7E;IAIA,IAAIC,YAAoB;QACtB,OAAQ,IAAI,CAACC,UAAU,KAAKb,iBAAI,CAACC,IAAI,CAAC,IAAI,CAACL,QAAQ,EAAEc,wBAAgB,CAACI,KAAK;IAC7E;IAIA,IAAIT,UAAkB;QACpB,OAAQ,IAAI,CAACU,QAAQ,KAAKf,iBAAI,CAACC,IAAI,CAAC,IAAI,CAACL,QAAQ,EAAEoB,eAAS,CAACC,GAAG;IAClE;IAIA,IAAIC,YAAoB;QACtB,OAAQ,IAAI,CAACC,UAAU,KAAKnB,iBAAI,CAACC,IAAI,CAAC,IAAI,CAACI,OAAO,EAAEW,eAAS,CAACI,KAAK;IACrE;IAEA,IACIC,UAAmB;QACrB,OAAO,IAAI,CAACC,IAAI,KAAKC,eAAS,CAACC,aAAa;IAC9C;IAEA,IACIC,SAAkB;QACpB,OAAO,IAAI,CAACH,IAAI,KAAKC,eAAS,CAACG,IAAI,IAAI,IAAI,CAACJ,IAAI,KAAKC,eAAS,CAACC,aAAa;IAC9E;IAEA,IACI1B,UAAmB;QACrB,OAAO,IAAI,CAACwB,IAAI,KAAKC,eAAS,CAACI,KAAK;IACtC;IAEA,IACI9B,SAAkB;QACpB,OAAO,IAAI,CAACyB,IAAI,KAAKC,eAAS,CAACK,IAAI;IACrC;IAEA,IACIC,kBAA2B;QAC7B,OAAO,IAAI,CAACC,YAAY,KAAK,QAAQ,IAAI,CAACC,YAAY,IAAI,IAAI,CAACD,YAAY;IAC7E;IAEA,IACIE,eAAwB;QAC1B,OAAO,CAAC,CAAC,IAAI,CAACC,OAAO,EAAEC;IACzB;IAEA,IACIC,eAAuB;QACzB,OAAO,IAAI,CAACF,OAAO,EAAEE,cAAcC,UAAU;IAC/C;IAEA,OAAOC,YAAYC,SAAiB,EAAExC,UAAU,KAAK,EAAED,SAAS,KAAK,EAAU;QAC7E,IAAIC,WAAWD,QAAQ;YACrB,OAAOG,iBAAI,CAACC,IAAI,CAACC,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACC,OAAO,EAAEP,UAAU,WAAW,SAASwC;QAC3F;QACA,OAAOtC,iBAAI,CAACC,IAAI,CAACC,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACG,SAAS,EAAE+B;IAC/D;IAEA,OAAOC,aAAaD,SAAiB,EAAU;QAC7C,OAAOtC,iBAAI,CAACC,IAAI,CAACN,UAAU0C,WAAW,CAACC,YAAY5B,wBAAgB,CAACC,KAAK;IAC3E;IAEA,OAAO6B,aAAaF,SAAiB,EAAU;QAC7C,OAAOtC,iBAAI,CAACC,IAAI,CAACN,UAAU0C,WAAW,CAACC,YAAY5B,wBAAgB,CAACI,KAAK;IAC3E;IAEA,OAAO2B,aAAaH,SAAiB,EAAExC,UAAU,KAAK,EAAED,SAAS,KAAK,EAAU;QAC9E,OAAOG,iBAAI,CAACC,IAAI,CAACN,UAAU0C,WAAW,CAACC,WAAWxC,SAASD,SAASmB,eAAS,CAACC,GAAG,EAAED,eAAS,CAACI,KAAK;IACpG;IAEA,OAAOsB,kBAAkBJ,SAAiB,EAAEK,UAAU,KAAK,EAAU;QACnE,IAAIA,SAAS,OAAOhD,UAAU6C,YAAY,CAACF;QAC3C,OAAO3C,UAAU4C,YAAY,CAACD;IAChC;IAEAM,WAAmB;QACjB,OAAO,CAAC,OAAO,EAAE,IAAI,CAACtC,KAAK,CAAC,GAAG,EAAE,IAAI,CAACuC,EAAE,CAAC,EAAE,CAAC;IAC9C;IAEAC,iBAAiB;QACf,OAAO,IAAI,CAACC,QAAQ;IACtB;IAEAC,YAAYC,QAAQ,KAAK,EAAE;QACzB,IAAI,CAAC,IAAI,CAACC,QAAQ,IAAID,OAAO;YAC3B,IAAI,CAACC,QAAQ,GAAG,GAAG,IAAI,CAACC,SAAS,IAAI,GAAG,CAAC,EAAE,IAAI,CAACC,QAAQ,IAAI,IAAI,CAACC,IAAI;QACvE;IACF;IAEA,MAAMC,YAA2B;QAC/B,IAAI,IAAI,CAACxD,OAAO,IAAI,IAAI,CAACD,MAAM,EAAE;YAC/B,MAAM0D,iBAAE,CAACC,KAAK,CAAC,IAAI,CAACtC,SAAS,EAAE;gBAAEuC,WAAW;YAAK;QACnD,OAAO;YACL,KAAK,MAAMC,KAAK;gBAAC,IAAI,CAAClD,SAAS;gBAAE,IAAI,CAACI,SAAS;gBAAE,IAAI,CAACM,SAAS;aAAC,CAAE;gBAChE,MAAMqC,iBAAE,CAACC,KAAK,CAACE,GAAG;oBAAED,WAAW;gBAAK;YACtC;QACF;IACF;IAEAE,UAAiB;QACf,OAAO;YAAEd,IAAI,IAAI,CAACA,EAAE;YAAEvC,OAAO,IAAI,CAACA,KAAK;YAAEsD,OAAO,IAAI,CAACA,KAAK;YAAEV,UAAU,IAAI,CAACA,QAAQ;QAAC;IACtF;IAEAW,cAAsB;QACpB,IAAIC;QACJ,IAAI,IAAI,CAACX,SAAS,EAAE;YAClB,IAAI,IAAI,CAACC,QAAQ,EAAE;gBACjBU,WAAW;oBAAEC,GAAG,IAAI,CAACZ,SAAS,CAACa,MAAM,CAAC;oBAAIC,GAAG,IAAI,CAACb,QAAQ,CAACY,MAAM,CAAC;gBAAG;YACvE;YACAF,WAAW;gBAAEC,GAAG,IAAI,CAACZ,SAAS,CAACa,MAAM,CAAC;gBAAIC,GAAG,IAAI,CAACd,SAAS,CAACa,MAAM,CAAC;YAAG;QACxE,OAAO;YACLF,WAAW;gBAAEC,GAAG,IAAI,CAACzD,KAAK,CAAC0D,MAAM,CAAC;gBAAIC,GAAG,IAAI,CAAC3D,KAAK,CAAC0D,MAAM,CAAC;YAAG;QAChE;QACA,OAAO,GAAGF,SAASC,CAAC,CAACG,WAAW,KAAKJ,SAASG,CAAC,CAACE,WAAW,IAAI;IACjE;IAEAC,eAAeC,UAAkB,EAAW;QAC1C,IAAI,IAAI,CAAChD,OAAO,EAAE;YAChB,OAAO;QACT;QACA,IAAIgD,eAAeC,qBAAe,CAACC,cAAc,IAAI,IAAI,CAACzE,OAAO,EAAE;YACjE,OAAO;QACT;QACA,OAAO,IAAI,CAACK,YAAY,CAACqE,OAAO,CAACH,gBAAgB,CAAC;IACpD;IAEAI,SAASnD,IAAY,EAAW;QAC9B,OAAO,IAAI,CAACA,IAAI,IAAIA;IACtB;IAEQoD,YAAYC,KAAyB,EAAE;QAC7C,iIAAiI;QACjI,wFAAwF;QACxF,IAAIA,SAAS,kBAAkBA,OAAO;YACpC,qEAAqE;YACrE,oHAAoH;YACpH,IAAI,CAAC1C,OAAO,GAAG;gBAAEC,aAAa0C,IAAAA,qBAAa,EAAC,gBAAgBD;YAAO;QACrE;IACF;IAEQE,aAAa;QACnB,IAAI,IAAI,CAAChF,MAAM,EAAE;YACf,IAAI,CAACS,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,CAACuC,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,CAACe,KAAK,GAAG;QACf;IACF;IAEQkB,kBAAkB;QACxB,IAAI,IAAI,CAAChF,OAAO,EAAE;YAChB,kCAAkC;YAClC,IAAI,CAACK,YAAY,GAAG4E,OAAOC,MAAM,CAACC,sBAAgB;QACpD,OAAO,IAAI,IAAI,CAACC,WAAW,EAAE;YAC3B,IAAI,CAAC/E,YAAY,GAAG,IAAI,CAAC+E,WAAW,CAACC,KAAK,CAACC,oBAAc;QAC3D;QACA,OAAO,IAAI,CAACF,WAAW;IACzB;IA1LA,YAAYP,KAA+D,EAAE7B,iBAAiB,IAAI,CAAE;QALpG,wBAAwB;aACxB3C,eAAyB,EAAE;QAKzB,qFAAqF;QACrF,IAAI,CAACuE,WAAW,CAACC;QACjBI,OAAOM,MAAM,CAAC,IAAI,EAAEV;QACpB,IAAI7B,gBAAgB;YAClB,2EAA2E;YAC3E,yDAAyD;YACzD,IAAI,CAACA,cAAc;QACrB;QACA,IAAI,CAACE,WAAW;QAChB,IAAI,CAAC8B,eAAe;QACpB,IAAI,CAACD,UAAU;IACjB;AA+KF;;;;;;;;;;;;;;;QA9LaS,aAAa"}
@@ -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/schemas/group.interface.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 type { groups } from './groups.schema'\n\ntype GroupSchema = typeof groups.$inferSelect\n\nexport class Group implements GroupSchema {\n id: number\n name: string\n description: string\n type: number\n visibility: number\n parentId: number\n permissions: string\n createdAt: Date\n modifiedAt: Date\n}\n"],"names":["Group"],"mappings":"AAAA;;;;CAIC;;;;+BAMYA;;;eAAAA;;;AAAN,IAAA,AAAMA,QAAN,MAAMA;AAUb"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/schemas/group.interface.ts"],"sourcesContent":["import type { groups } from './groups.schema'\n\ntype GroupSchema = typeof groups.$inferSelect\n\nexport class Group implements GroupSchema {\n id: number\n name: string\n description: string\n type: number\n visibility: number\n parentId: number\n permissions: string\n createdAt: Date\n modifiedAt: Date\n}\n"],"names":["Group"],"mappings":";;;;+BAIaA;;;eAAAA;;;AAAN,IAAA,AAAMA,QAAN,MAAMA;AAUb"}
@@ -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/schemas/groups.schema.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 { sql } from 'drizzle-orm'\nimport { AnyMySqlColumn, bigint, datetime, index, mysqlTable, tinyint, uniqueIndex, varchar } from 'drizzle-orm/mysql-core'\n\n/*\n type:\n 0: user\n 1: custom (can be created by user)\n visibility:\n 0: visible (default)\n 1: private (non-members users cannot see this group - default for personal group type)\n 2: isolated (hidden, its members cannot see it and cannot see each other)\n permissions: allows applications, only for user groups\n*/\n\nexport const groups = mysqlTable(\n 'groups',\n {\n id: bigint('id', { mode: 'number', unsigned: true }).autoincrement().primaryKey(),\n name: varchar('name', { length: 255 }).notNull(),\n description: varchar('description', { length: 255 }),\n type: tinyint('type', { unsigned: true }).default(0).notNull(),\n visibility: tinyint('visibility', { unsigned: true }).default(0).notNull(),\n parentId: bigint('parentId', { mode: 'number', unsigned: true }).references((): AnyMySqlColumn => groups.id, { onDelete: 'set null' }),\n permissions: varchar('permissions', { length: 255 }).default('').notNull(),\n createdAt: datetime('createdAt', { mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n modifiedAt: datetime('modifiedAt', { mode: 'date' }).default(sql`CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`)\n },\n (table) => [\n uniqueIndex('name_idx').on(table.name),\n index('parent_idx').on(table.parentId),\n index('type_idx').on(table.type),\n index('visibility_idx').on(table.visibility)\n ]\n)\n"],"names":["groups","mysqlTable","id","bigint","mode","unsigned","autoincrement","primaryKey","name","varchar","length","notNull","description","type","tinyint","default","visibility","parentId","references","onDelete","permissions","createdAt","datetime","sql","modifiedAt","table","uniqueIndex","on","index"],"mappings":"AAAA;;;;CAIC;;;;+BAgBYA;;;eAAAA;;;4BAdO;2BAC+E;AAa5F,MAAMA,SAASC,IAAAA,qBAAU,EAC9B,UACA;IACEC,IAAIC,IAAAA,iBAAM,EAAC,MAAM;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGC,aAAa,GAAGC,UAAU;IAC/EC,MAAMC,IAAAA,kBAAO,EAAC,QAAQ;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IAC9CC,aAAaH,IAAAA,kBAAO,EAAC,eAAe;QAAEC,QAAQ;IAAI;IAClDG,MAAMC,IAAAA,kBAAO,EAAC,QAAQ;QAAET,UAAU;IAAK,GAAGU,OAAO,CAAC,GAAGJ,OAAO;IAC5DK,YAAYF,IAAAA,kBAAO,EAAC,cAAc;QAAET,UAAU;IAAK,GAAGU,OAAO,CAAC,GAAGJ,OAAO;IACxEM,UAAUd,IAAAA,iBAAM,EAAC,YAAY;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGa,UAAU,CAAC,IAAsBlB,OAAOE,EAAE,EAAE;QAAEiB,UAAU;IAAW;IACpIC,aAAaX,IAAAA,kBAAO,EAAC,eAAe;QAAEC,QAAQ;IAAI,GAAGK,OAAO,CAAC,IAAIJ,OAAO;IACxEU,WAAWC,IAAAA,mBAAQ,EAAC,aAAa;QAAElB,MAAM;IAAO,GAC7CW,OAAO,CAACQ,IAAAA,eAAG,CAAA,CAAC,iBAAiB,CAAC,EAC9BZ,OAAO;IACVa,YAAYF,IAAAA,mBAAQ,EAAC,cAAc;QAAElB,MAAM;IAAO,GAAGW,OAAO,CAACQ,IAAAA,eAAG,CAAA,CAAC,6CAA6C,CAAC;AACjH,GACA,CAACE,QAAU;QACTC,IAAAA,sBAAW,EAAC,YAAYC,EAAE,CAACF,MAAMjB,IAAI;QACrCoB,IAAAA,gBAAK,EAAC,cAAcD,EAAE,CAACF,MAAMR,QAAQ;QACrCW,IAAAA,gBAAK,EAAC,YAAYD,EAAE,CAACF,MAAMZ,IAAI;QAC/Be,IAAAA,gBAAK,EAAC,kBAAkBD,EAAE,CAACF,MAAMT,UAAU;KAC5C"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/schemas/groups.schema.ts"],"sourcesContent":["import { sql } from 'drizzle-orm'\nimport { AnyMySqlColumn, bigint, datetime, index, mysqlTable, tinyint, uniqueIndex, varchar } from 'drizzle-orm/mysql-core'\n\n/*\n type:\n 0: user\n 1: custom (can be created by user)\n visibility:\n 0: visible (default)\n 1: private (non-members users cannot see this group - default for personal group type)\n 2: isolated (hidden, its members cannot see it and cannot see each other)\n permissions: allows applications, only for user groups\n*/\n\nexport const groups = mysqlTable(\n 'groups',\n {\n id: bigint('id', { mode: 'number', unsigned: true }).autoincrement().primaryKey(),\n name: varchar('name', { length: 255 }).notNull(),\n description: varchar('description', { length: 255 }),\n type: tinyint('type', { unsigned: true }).default(0).notNull(),\n visibility: tinyint('visibility', { unsigned: true }).default(0).notNull(),\n parentId: bigint('parentId', { mode: 'number', unsigned: true }).references((): AnyMySqlColumn => groups.id, { onDelete: 'set null' }),\n permissions: varchar('permissions', { length: 255 }).default('').notNull(),\n createdAt: datetime('createdAt', { mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n modifiedAt: datetime('modifiedAt', { mode: 'date' }).default(sql`CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`)\n },\n (table) => [\n uniqueIndex('name_idx').on(table.name),\n index('parent_idx').on(table.parentId),\n index('type_idx').on(table.type),\n index('visibility_idx').on(table.visibility)\n ]\n)\n"],"names":["groups","mysqlTable","id","bigint","mode","unsigned","autoincrement","primaryKey","name","varchar","length","notNull","description","type","tinyint","default","visibility","parentId","references","onDelete","permissions","createdAt","datetime","sql","modifiedAt","table","uniqueIndex","on","index"],"mappings":";;;;+BAcaA;;;eAAAA;;;4BAdO;2BAC+E;AAa5F,MAAMA,SAASC,IAAAA,qBAAU,EAC9B,UACA;IACEC,IAAIC,IAAAA,iBAAM,EAAC,MAAM;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGC,aAAa,GAAGC,UAAU;IAC/EC,MAAMC,IAAAA,kBAAO,EAAC,QAAQ;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IAC9CC,aAAaH,IAAAA,kBAAO,EAAC,eAAe;QAAEC,QAAQ;IAAI;IAClDG,MAAMC,IAAAA,kBAAO,EAAC,QAAQ;QAAET,UAAU;IAAK,GAAGU,OAAO,CAAC,GAAGJ,OAAO;IAC5DK,YAAYF,IAAAA,kBAAO,EAAC,cAAc;QAAET,UAAU;IAAK,GAAGU,OAAO,CAAC,GAAGJ,OAAO;IACxEM,UAAUd,IAAAA,iBAAM,EAAC,YAAY;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGa,UAAU,CAAC,IAAsBlB,OAAOE,EAAE,EAAE;QAAEiB,UAAU;IAAW;IACpIC,aAAaX,IAAAA,kBAAO,EAAC,eAAe;QAAEC,QAAQ;IAAI,GAAGK,OAAO,CAAC,IAAIJ,OAAO;IACxEU,WAAWC,IAAAA,mBAAQ,EAAC,aAAa;QAAElB,MAAM;IAAO,GAC7CW,OAAO,CAACQ,IAAAA,eAAG,CAAA,CAAC,iBAAiB,CAAC,EAC9BZ,OAAO;IACVa,YAAYF,IAAAA,mBAAQ,EAAC,cAAc;QAAElB,MAAM;IAAO,GAAGW,OAAO,CAACQ,IAAAA,eAAG,CAAA,CAAC,6CAA6C,CAAC;AACjH,GACA,CAACE,QAAU;QACTC,IAAAA,sBAAW,EAAC,YAAYC,EAAE,CAACF,MAAMjB,IAAI;QACrCoB,IAAAA,gBAAK,EAAC,cAAcD,EAAE,CAACF,MAAMR,QAAQ;QACrCW,IAAAA,gBAAK,EAAC,YAAYD,EAAE,CAACF,MAAMZ,IAAI;QAC/Be,IAAAA,gBAAK,EAAC,kBAAkBD,EAAE,CAACF,MAAMT,UAAU;KAC5C"}
@@ -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/schemas/user-group.interface.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 type { usersGroups } from './users-groups.schema'\n\ntype UserGroupSchema = typeof usersGroups.$inferSelect\n\nexport class UserGroup implements UserGroupSchema {\n userId: number\n groupId: number\n role: number\n createdAt: Date\n}\n"],"names":["UserGroup"],"mappings":"AAAA;;;;CAIC;;;;+BAMYA;;;eAAAA;;;AAAN,IAAA,AAAMA,YAAN,MAAMA;AAKb"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/schemas/user-group.interface.ts"],"sourcesContent":["import type { usersGroups } from './users-groups.schema'\n\ntype UserGroupSchema = typeof usersGroups.$inferSelect\n\nexport class UserGroup implements UserGroupSchema {\n userId: number\n groupId: number\n role: number\n createdAt: Date\n}\n"],"names":["UserGroup"],"mappings":";;;;+BAIaA;;;eAAAA;;;AAAN,IAAA,AAAMA,YAAN,MAAMA;AAKb"}
@@ -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/schemas/user.interface.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 type { UserSecrets } from '../interfaces/user-secrets.interface'\nimport type { users } from './users.schema'\n\ntype UserSchema = typeof users.$inferSelect\n\nexport class User implements UserSchema {\n id: number\n email: string\n login: string\n firstName: string\n lastName: string\n password: string\n role: number\n isActive: boolean\n secrets: UserSecrets\n language: string\n permissions: string\n storageUsage: number\n storageQuota: number\n storageIndexing: boolean\n notification: number\n onlineStatus: number\n passwordAttempts: number\n currentIp: string\n lastIp: string\n currentAccess: Date\n lastAccess: Date\n createdAt: Date\n}\n"],"names":["User"],"mappings":"AAAA;;;;CAIC;;;;+BAOYA;;;eAAAA;;;AAAN,IAAA,AAAMA,OAAN,MAAMA;AAuBb"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/schemas/user.interface.ts"],"sourcesContent":["import type { UserSecrets } from '../interfaces/user-secrets.interface'\nimport type { users } from './users.schema'\n\ntype UserSchema = typeof users.$inferSelect\n\nexport class User implements UserSchema {\n id: number\n email: string\n login: string\n firstName: string\n lastName: string\n password: string\n role: number\n isActive: boolean\n secrets: UserSecrets\n language: string\n permissions: string\n storageUsage: number\n storageQuota: number\n storageIndexing: boolean\n notification: number\n onlineStatus: number\n passwordAttempts: number\n currentIp: string\n lastIp: string\n currentAccess: Date\n lastAccess: Date\n createdAt: Date\n}\n"],"names":["User"],"mappings":";;;;+BAKaA;;;eAAAA;;;AAAN,IAAA,AAAMA,OAAN,MAAMA;AAuBb"}
@@ -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/schemas/users-groups.schema.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 { sql } from 'drizzle-orm'\nimport { bigint, datetime, index, mysqlTable, primaryKey, tinyint } from 'drizzle-orm/mysql-core'\nimport { groups } from './groups.schema'\nimport { users } from './users.schema'\n\n/*\n role:\n 0: is member\n 1: is manager (this allows the user to edit personal groups but not create or delete them)\n*/\n\nexport const usersGroups = mysqlTable(\n 'users_groups',\n {\n userId: bigint('userId', { mode: 'number', unsigned: true })\n .references(() => users.id, { onDelete: 'cascade' })\n .notNull(),\n groupId: bigint('groupId', { mode: 'number', unsigned: true })\n .references(() => groups.id, { onDelete: 'cascade' })\n .notNull(),\n role: tinyint('role', { unsigned: true }).default(0).notNull(),\n createdAt: datetime('createdAt', { mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull()\n },\n (table) => [primaryKey({ columns: [table.userId, table.groupId] }), index('user_idx').on(table.userId), index('group_idx').on(table.groupId)]\n)\n"],"names":["usersGroups","mysqlTable","userId","bigint","mode","unsigned","references","users","id","onDelete","notNull","groupId","groups","role","tinyint","default","createdAt","datetime","sql","table","primaryKey","columns","index","on"],"mappings":"AAAA;;;;CAIC;;;;+BAaYA;;;eAAAA;;;4BAXO;2BACqD;8BAClD;6BACD;AAQf,MAAMA,cAAcC,IAAAA,qBAAU,EACnC,gBACA;IACEC,QAAQC,IAAAA,iBAAM,EAAC,UAAU;QAAEC,MAAM;QAAUC,UAAU;IAAK,GACvDC,UAAU,CAAC,IAAMC,kBAAK,CAACC,EAAE,EAAE;QAAEC,UAAU;IAAU,GACjDC,OAAO;IACVC,SAASR,IAAAA,iBAAM,EAAC,WAAW;QAAEC,MAAM;QAAUC,UAAU;IAAK,GACzDC,UAAU,CAAC,IAAMM,oBAAM,CAACJ,EAAE,EAAE;QAAEC,UAAU;IAAU,GAClDC,OAAO;IACVG,MAAMC,IAAAA,kBAAO,EAAC,QAAQ;QAAET,UAAU;IAAK,GAAGU,OAAO,CAAC,GAAGL,OAAO;IAC5DM,WAAWC,IAAAA,mBAAQ,EAAC,aAAa;QAAEb,MAAM;IAAO,GAC7CW,OAAO,CAACG,IAAAA,eAAG,CAAA,CAAC,iBAAiB,CAAC,EAC9BR,OAAO;AACZ,GACA,CAACS,QAAU;QAACC,IAAAA,qBAAU,EAAC;YAAEC,SAAS;gBAACF,MAAMjB,MAAM;gBAAEiB,MAAMR,OAAO;aAAC;QAAC;QAAIW,IAAAA,gBAAK,EAAC,YAAYC,EAAE,CAACJ,MAAMjB,MAAM;QAAGoB,IAAAA,gBAAK,EAAC,aAAaC,EAAE,CAACJ,MAAMR,OAAO;KAAE"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/schemas/users-groups.schema.ts"],"sourcesContent":["import { sql } from 'drizzle-orm'\nimport { bigint, datetime, index, mysqlTable, primaryKey, tinyint } from 'drizzle-orm/mysql-core'\nimport { groups } from './groups.schema'\nimport { users } from './users.schema'\n\n/*\n role:\n 0: is member\n 1: is manager (this allows the user to edit personal groups but not create or delete them)\n*/\n\nexport const usersGroups = mysqlTable(\n 'users_groups',\n {\n userId: bigint('userId', { mode: 'number', unsigned: true })\n .references(() => users.id, { onDelete: 'cascade' })\n .notNull(),\n groupId: bigint('groupId', { mode: 'number', unsigned: true })\n .references(() => groups.id, { onDelete: 'cascade' })\n .notNull(),\n role: tinyint('role', { unsigned: true }).default(0).notNull(),\n createdAt: datetime('createdAt', { mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull()\n },\n (table) => [primaryKey({ columns: [table.userId, table.groupId] }), index('user_idx').on(table.userId), index('group_idx').on(table.groupId)]\n)\n"],"names":["usersGroups","mysqlTable","userId","bigint","mode","unsigned","references","users","id","onDelete","notNull","groupId","groups","role","tinyint","default","createdAt","datetime","sql","table","primaryKey","columns","index","on"],"mappings":";;;;+BAWaA;;;eAAAA;;;4BAXO;2BACqD;8BAClD;6BACD;AAQf,MAAMA,cAAcC,IAAAA,qBAAU,EACnC,gBACA;IACEC,QAAQC,IAAAA,iBAAM,EAAC,UAAU;QAAEC,MAAM;QAAUC,UAAU;IAAK,GACvDC,UAAU,CAAC,IAAMC,kBAAK,CAACC,EAAE,EAAE;QAAEC,UAAU;IAAU,GACjDC,OAAO;IACVC,SAASR,IAAAA,iBAAM,EAAC,WAAW;QAAEC,MAAM;QAAUC,UAAU;IAAK,GACzDC,UAAU,CAAC,IAAMM,oBAAM,CAACJ,EAAE,EAAE;QAAEC,UAAU;IAAU,GAClDC,OAAO;IACVG,MAAMC,IAAAA,kBAAO,EAAC,QAAQ;QAAET,UAAU;IAAK,GAAGU,OAAO,CAAC,GAAGL,OAAO;IAC5DM,WAAWC,IAAAA,mBAAQ,EAAC,aAAa;QAAEb,MAAM;IAAO,GAC7CW,OAAO,CAACG,IAAAA,eAAG,CAAA,CAAC,iBAAiB,CAAC,EAC9BR,OAAO;AACZ,GACA,CAACS,QAAU;QAACC,IAAAA,qBAAU,EAAC;YAAEC,SAAS;gBAACF,MAAMjB,MAAM;gBAAEiB,MAAMR,OAAO;aAAC;QAAC;QAAIW,IAAAA,gBAAK,EAAC,YAAYC,EAAE,CAACJ,MAAMjB,MAAM;QAAGoB,IAAAA,gBAAK,EAAC,aAAaC,EAAE,CAACJ,MAAMR,OAAO;KAAE"}
@@ -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/schemas/users-guests.schema.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 { sql } from 'drizzle-orm'\nimport { bigint, check, datetime, index, mysqlTable, primaryKey } from 'drizzle-orm/mysql-core'\nimport { users } from './users.schema'\n\nexport const usersGuests = mysqlTable(\n 'users_guests',\n {\n userId: bigint('userId', { mode: 'number', unsigned: true })\n .references(() => users.id, { onDelete: 'cascade' })\n .notNull(),\n guestId: bigint('guestId', { mode: 'number', unsigned: true })\n .references(() => users.id, { onDelete: 'cascade' })\n .notNull(),\n createdAt: datetime('createdAt', { mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull()\n },\n (table) => [\n primaryKey({ columns: [table.userId, table.guestId] }),\n index('user_idx').on(table.userId),\n index('guest_id').on(table.guestId),\n check('user_guest_check', sql`${table.userId} <> ${table.guestId}`)\n ]\n)\n"],"names":["usersGuests","mysqlTable","userId","bigint","mode","unsigned","references","users","id","onDelete","notNull","guestId","createdAt","datetime","default","sql","table","primaryKey","columns","index","on","check"],"mappings":"AAAA;;;;CAIC;;;;+BAMYA;;;eAAAA;;;4BAJO;2BACmD;6BACjD;AAEf,MAAMA,cAAcC,IAAAA,qBAAU,EACnC,gBACA;IACEC,QAAQC,IAAAA,iBAAM,EAAC,UAAU;QAAEC,MAAM;QAAUC,UAAU;IAAK,GACvDC,UAAU,CAAC,IAAMC,kBAAK,CAACC,EAAE,EAAE;QAAEC,UAAU;IAAU,GACjDC,OAAO;IACVC,SAASR,IAAAA,iBAAM,EAAC,WAAW;QAAEC,MAAM;QAAUC,UAAU;IAAK,GACzDC,UAAU,CAAC,IAAMC,kBAAK,CAACC,EAAE,EAAE;QAAEC,UAAU;IAAU,GACjDC,OAAO;IACVE,WAAWC,IAAAA,mBAAQ,EAAC,aAAa;QAAET,MAAM;IAAO,GAC7CU,OAAO,CAACC,IAAAA,eAAG,CAAA,CAAC,iBAAiB,CAAC,EAC9BL,OAAO;AACZ,GACA,CAACM,QAAU;QACTC,IAAAA,qBAAU,EAAC;YAAEC,SAAS;gBAACF,MAAMd,MAAM;gBAAEc,MAAML,OAAO;aAAC;QAAC;QACpDQ,IAAAA,gBAAK,EAAC,YAAYC,EAAE,CAACJ,MAAMd,MAAM;QACjCiB,IAAAA,gBAAK,EAAC,YAAYC,EAAE,CAACJ,MAAML,OAAO;QAClCU,IAAAA,gBAAK,EAAC,oBAAoBN,IAAAA,eAAG,CAAA,CAAC,EAAEC,MAAMd,MAAM,CAAC,IAAI,EAAEc,MAAML,OAAO,CAAC,CAAC;KACnE"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/schemas/users-guests.schema.ts"],"sourcesContent":["import { sql } from 'drizzle-orm'\nimport { bigint, check, datetime, index, mysqlTable, primaryKey } from 'drizzle-orm/mysql-core'\nimport { users } from './users.schema'\n\nexport const usersGuests = mysqlTable(\n 'users_guests',\n {\n userId: bigint('userId', { mode: 'number', unsigned: true })\n .references(() => users.id, { onDelete: 'cascade' })\n .notNull(),\n guestId: bigint('guestId', { mode: 'number', unsigned: true })\n .references(() => users.id, { onDelete: 'cascade' })\n .notNull(),\n createdAt: datetime('createdAt', { mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull()\n },\n (table) => [\n primaryKey({ columns: [table.userId, table.guestId] }),\n index('user_idx').on(table.userId),\n index('guest_id').on(table.guestId),\n check('user_guest_check', sql`${table.userId} <> ${table.guestId}`)\n ]\n)\n"],"names":["usersGuests","mysqlTable","userId","bigint","mode","unsigned","references","users","id","onDelete","notNull","guestId","createdAt","datetime","default","sql","table","primaryKey","columns","index","on","check"],"mappings":";;;;+BAIaA;;;eAAAA;;;4BAJO;2BACmD;6BACjD;AAEf,MAAMA,cAAcC,IAAAA,qBAAU,EACnC,gBACA;IACEC,QAAQC,IAAAA,iBAAM,EAAC,UAAU;QAAEC,MAAM;QAAUC,UAAU;IAAK,GACvDC,UAAU,CAAC,IAAMC,kBAAK,CAACC,EAAE,EAAE;QAAEC,UAAU;IAAU,GACjDC,OAAO;IACVC,SAASR,IAAAA,iBAAM,EAAC,WAAW;QAAEC,MAAM;QAAUC,UAAU;IAAK,GACzDC,UAAU,CAAC,IAAMC,kBAAK,CAACC,EAAE,EAAE;QAAEC,UAAU;IAAU,GACjDC,OAAO;IACVE,WAAWC,IAAAA,mBAAQ,EAAC,aAAa;QAAET,MAAM;IAAO,GAC7CU,OAAO,CAACC,IAAAA,eAAG,CAAA,CAAC,iBAAiB,CAAC,EAC9BL,OAAO;AACZ,GACA,CAACM,QAAU;QACTC,IAAAA,qBAAU,EAAC;YAAEC,SAAS;gBAACF,MAAMd,MAAM;gBAAEc,MAAML,OAAO;aAAC;QAAC;QACpDQ,IAAAA,gBAAK,EAAC,YAAYC,EAAE,CAACJ,MAAMd,MAAM;QACjCiB,IAAAA,gBAAK,EAAC,YAAYC,EAAE,CAACJ,MAAML,OAAO;QAClCU,IAAAA,gBAAK,EAAC,oBAAoBN,IAAAA,eAAG,CAAA,CAAC,EAAEC,MAAMd,MAAM,CAAC,IAAI,EAAEc,MAAML,OAAO,CAAC,CAAC;KACnE"}
@@ -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/schemas/users.schema.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 { SQL, sql } from 'drizzle-orm'\nimport { bigint, boolean, datetime, index, mysqlTable, tinyint, uniqueIndex, varchar } from 'drizzle-orm/mysql-core'\nimport { jsonColumn } from '../../../infrastructure/database/columns'\nimport { UserSecrets } from '../interfaces/user-secrets.interface'\n\n/*\n role:\n 0: administrator\n 1: user\n 2: guest\n 3: link\n notification:\n 0: application\n 1: application + mail\n onlineStatus:\n 0: available\n 1: busy\n 2: absent\n 3: offline\n storageQuota:\n 0 : no storage\n null : unlimited\n other: limited to value\n*/\n\nexport const users = mysqlTable(\n 'users',\n {\n id: bigint('id', { mode: 'number', unsigned: true }).autoincrement().primaryKey(),\n email: varchar('email', { length: 255 }).notNull(),\n login: varchar('login', { length: 255 }).notNull(),\n firstName: varchar('firstName', { length: 255 }),\n lastName: varchar('lastName', { length: 255 }),\n password: varchar('password', { length: 255 }).notNull(),\n passwordAttempts: tinyint('passwordAttempts', { unsigned: true }).default(0).notNull(),\n role: tinyint('role', { unsigned: true }).default(1).notNull(),\n isActive: boolean('isActive').default(true).notNull(),\n secrets: jsonColumn<UserSecrets>()('secrets'),\n language: varchar('language', { length: 10 }),\n permissions: varchar('permissions', { length: 255 }).default('').notNull(),\n storageUsage: bigint('storageUsage', { mode: 'number', unsigned: true }).default(0),\n storageQuota: bigint('storageQuota', { mode: 'number', unsigned: true }),\n storageIndexing: boolean('storageIndexing').default(true).notNull(),\n notification: tinyint('notification', { unsigned: true }).default(1).notNull(),\n onlineStatus: tinyint('onlineStatus', { unsigned: true }).default(0).notNull(),\n currentIp: varchar('currentIp', { length: 45 }),\n lastIp: varchar('lastIp', { length: 45 }),\n currentAccess: datetime('currentAccess', { mode: 'date' }),\n lastAccess: datetime('lastAccess', { mode: 'date' }),\n createdAt: datetime('createdAt', { mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull()\n },\n (table) => [uniqueIndex('email_idx').on(table.email), uniqueIndex('login_idx').on(table.login), index('role_idx').on(table.role)]\n)\n\nexport const userFullNameSQL = (user: any): SQL<string> => sql`TRIM(CONCAT(${user.firstName}, ' ', ${user.lastName}))`\n"],"names":["userFullNameSQL","users","mysqlTable","id","bigint","mode","unsigned","autoincrement","primaryKey","email","varchar","length","notNull","login","firstName","lastName","password","passwordAttempts","tinyint","default","role","isActive","boolean","secrets","jsonColumn","language","permissions","storageUsage","storageQuota","storageIndexing","notification","onlineStatus","currentIp","lastIp","currentAccess","datetime","lastAccess","createdAt","sql","table","uniqueIndex","on","index","user"],"mappings":"AAAA;;;;CAIC;;;;;;;;;;;QA0DYA;eAAAA;;QA/BAC;eAAAA;;;4BAzBY;2BACmE;yBACjE;AAuBpB,MAAMA,QAAQC,IAAAA,qBAAU,EAC7B,SACA;IACEC,IAAIC,IAAAA,iBAAM,EAAC,MAAM;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGC,aAAa,GAAGC,UAAU;IAC/EC,OAAOC,IAAAA,kBAAO,EAAC,SAAS;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IAChDC,OAAOH,IAAAA,kBAAO,EAAC,SAAS;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IAChDE,WAAWJ,IAAAA,kBAAO,EAAC,aAAa;QAAEC,QAAQ;IAAI;IAC9CI,UAAUL,IAAAA,kBAAO,EAAC,YAAY;QAAEC,QAAQ;IAAI;IAC5CK,UAAUN,IAAAA,kBAAO,EAAC,YAAY;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IACtDK,kBAAkBC,IAAAA,kBAAO,EAAC,oBAAoB;QAAEZ,UAAU;IAAK,GAAGa,OAAO,CAAC,GAAGP,OAAO;IACpFQ,MAAMF,IAAAA,kBAAO,EAAC,QAAQ;QAAEZ,UAAU;IAAK,GAAGa,OAAO,CAAC,GAAGP,OAAO;IAC5DS,UAAUC,IAAAA,kBAAO,EAAC,YAAYH,OAAO,CAAC,MAAMP,OAAO;IACnDW,SAASC,IAAAA,mBAAU,IAAgB;IACnCC,UAAUf,IAAAA,kBAAO,EAAC,YAAY;QAAEC,QAAQ;IAAG;IAC3Ce,aAAahB,IAAAA,kBAAO,EAAC,eAAe;QAAEC,QAAQ;IAAI,GAAGQ,OAAO,CAAC,IAAIP,OAAO;IACxEe,cAAcvB,IAAAA,iBAAM,EAAC,gBAAgB;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGa,OAAO,CAAC;IACjFS,cAAcxB,IAAAA,iBAAM,EAAC,gBAAgB;QAAEC,MAAM;QAAUC,UAAU;IAAK;IACtEuB,iBAAiBP,IAAAA,kBAAO,EAAC,mBAAmBH,OAAO,CAAC,MAAMP,OAAO;IACjEkB,cAAcZ,IAAAA,kBAAO,EAAC,gBAAgB;QAAEZ,UAAU;IAAK,GAAGa,OAAO,CAAC,GAAGP,OAAO;IAC5EmB,cAAcb,IAAAA,kBAAO,EAAC,gBAAgB;QAAEZ,UAAU;IAAK,GAAGa,OAAO,CAAC,GAAGP,OAAO;IAC5EoB,WAAWtB,IAAAA,kBAAO,EAAC,aAAa;QAAEC,QAAQ;IAAG;IAC7CsB,QAAQvB,IAAAA,kBAAO,EAAC,UAAU;QAAEC,QAAQ;IAAG;IACvCuB,eAAeC,IAAAA,mBAAQ,EAAC,iBAAiB;QAAE9B,MAAM;IAAO;IACxD+B,YAAYD,IAAAA,mBAAQ,EAAC,cAAc;QAAE9B,MAAM;IAAO;IAClDgC,WAAWF,IAAAA,mBAAQ,EAAC,aAAa;QAAE9B,MAAM;IAAO,GAC7Cc,OAAO,CAACmB,IAAAA,eAAG,CAAA,CAAC,iBAAiB,CAAC,EAC9B1B,OAAO;AACZ,GACA,CAAC2B,QAAU;QAACC,IAAAA,sBAAW,EAAC,aAAaC,EAAE,CAACF,MAAM9B,KAAK;QAAG+B,IAAAA,sBAAW,EAAC,aAAaC,EAAE,CAACF,MAAM1B,KAAK;QAAG6B,IAAAA,gBAAK,EAAC,YAAYD,EAAE,CAACF,MAAMnB,IAAI;KAAE;AAG5H,MAAMpB,kBAAkB,CAAC2C,OAA2BL,IAAAA,eAAG,CAAA,CAAC,YAAY,EAAEK,KAAK7B,SAAS,CAAC,OAAO,EAAE6B,KAAK5B,QAAQ,CAAC,EAAE,CAAC"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/users/schemas/users.schema.ts"],"sourcesContent":["import { SQL, sql } from 'drizzle-orm'\nimport { bigint, boolean, datetime, index, mysqlTable, tinyint, uniqueIndex, varchar } from 'drizzle-orm/mysql-core'\nimport { jsonColumn } from '../../../infrastructure/database/columns'\nimport { UserSecrets } from '../interfaces/user-secrets.interface'\n\n/*\n role:\n 0: administrator\n 1: user\n 2: guest\n 3: link\n notification:\n 0: application\n 1: application + mail\n onlineStatus:\n 0: available\n 1: busy\n 2: absent\n 3: offline\n storageQuota:\n 0 : no storage\n null : unlimited\n other: limited to value\n*/\n\nexport const users = mysqlTable(\n 'users',\n {\n id: bigint('id', { mode: 'number', unsigned: true }).autoincrement().primaryKey(),\n email: varchar('email', { length: 255 }).notNull(),\n login: varchar('login', { length: 255 }).notNull(),\n firstName: varchar('firstName', { length: 255 }),\n lastName: varchar('lastName', { length: 255 }),\n password: varchar('password', { length: 255 }).notNull(),\n passwordAttempts: tinyint('passwordAttempts', { unsigned: true }).default(0).notNull(),\n role: tinyint('role', { unsigned: true }).default(1).notNull(),\n isActive: boolean('isActive').default(true).notNull(),\n secrets: jsonColumn<UserSecrets>()('secrets'),\n language: varchar('language', { length: 10 }),\n permissions: varchar('permissions', { length: 255 }).default('').notNull(),\n storageUsage: bigint('storageUsage', { mode: 'number', unsigned: true }).default(0),\n storageQuota: bigint('storageQuota', { mode: 'number', unsigned: true }),\n storageIndexing: boolean('storageIndexing').default(true).notNull(),\n notification: tinyint('notification', { unsigned: true }).default(1).notNull(),\n onlineStatus: tinyint('onlineStatus', { unsigned: true }).default(0).notNull(),\n currentIp: varchar('currentIp', { length: 45 }),\n lastIp: varchar('lastIp', { length: 45 }),\n currentAccess: datetime('currentAccess', { mode: 'date' }),\n lastAccess: datetime('lastAccess', { mode: 'date' }),\n createdAt: datetime('createdAt', { mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull()\n },\n (table) => [uniqueIndex('email_idx').on(table.email), uniqueIndex('login_idx').on(table.login), index('role_idx').on(table.role)]\n)\n\nexport const userFullNameSQL = (user: any): SQL<string> => sql`TRIM(CONCAT(${user.firstName}, ' ', ${user.lastName}))`\n"],"names":["userFullNameSQL","users","mysqlTable","id","bigint","mode","unsigned","autoincrement","primaryKey","email","varchar","length","notNull","login","firstName","lastName","password","passwordAttempts","tinyint","default","role","isActive","boolean","secrets","jsonColumn","language","permissions","storageUsage","storageQuota","storageIndexing","notification","onlineStatus","currentIp","lastIp","currentAccess","datetime","lastAccess","createdAt","sql","table","uniqueIndex","on","index","user"],"mappings":";;;;;;;;;;;QAwDaA;eAAAA;;QA/BAC;eAAAA;;;4BAzBY;2BACmE;yBACjE;AAuBpB,MAAMA,QAAQC,IAAAA,qBAAU,EAC7B,SACA;IACEC,IAAIC,IAAAA,iBAAM,EAAC,MAAM;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGC,aAAa,GAAGC,UAAU;IAC/EC,OAAOC,IAAAA,kBAAO,EAAC,SAAS;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IAChDC,OAAOH,IAAAA,kBAAO,EAAC,SAAS;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IAChDE,WAAWJ,IAAAA,kBAAO,EAAC,aAAa;QAAEC,QAAQ;IAAI;IAC9CI,UAAUL,IAAAA,kBAAO,EAAC,YAAY;QAAEC,QAAQ;IAAI;IAC5CK,UAAUN,IAAAA,kBAAO,EAAC,YAAY;QAAEC,QAAQ;IAAI,GAAGC,OAAO;IACtDK,kBAAkBC,IAAAA,kBAAO,EAAC,oBAAoB;QAAEZ,UAAU;IAAK,GAAGa,OAAO,CAAC,GAAGP,OAAO;IACpFQ,MAAMF,IAAAA,kBAAO,EAAC,QAAQ;QAAEZ,UAAU;IAAK,GAAGa,OAAO,CAAC,GAAGP,OAAO;IAC5DS,UAAUC,IAAAA,kBAAO,EAAC,YAAYH,OAAO,CAAC,MAAMP,OAAO;IACnDW,SAASC,IAAAA,mBAAU,IAAgB;IACnCC,UAAUf,IAAAA,kBAAO,EAAC,YAAY;QAAEC,QAAQ;IAAG;IAC3Ce,aAAahB,IAAAA,kBAAO,EAAC,eAAe;QAAEC,QAAQ;IAAI,GAAGQ,OAAO,CAAC,IAAIP,OAAO;IACxEe,cAAcvB,IAAAA,iBAAM,EAAC,gBAAgB;QAAEC,MAAM;QAAUC,UAAU;IAAK,GAAGa,OAAO,CAAC;IACjFS,cAAcxB,IAAAA,iBAAM,EAAC,gBAAgB;QAAEC,MAAM;QAAUC,UAAU;IAAK;IACtEuB,iBAAiBP,IAAAA,kBAAO,EAAC,mBAAmBH,OAAO,CAAC,MAAMP,OAAO;IACjEkB,cAAcZ,IAAAA,kBAAO,EAAC,gBAAgB;QAAEZ,UAAU;IAAK,GAAGa,OAAO,CAAC,GAAGP,OAAO;IAC5EmB,cAAcb,IAAAA,kBAAO,EAAC,gBAAgB;QAAEZ,UAAU;IAAK,GAAGa,OAAO,CAAC,GAAGP,OAAO;IAC5EoB,WAAWtB,IAAAA,kBAAO,EAAC,aAAa;QAAEC,QAAQ;IAAG;IAC7CsB,QAAQvB,IAAAA,kBAAO,EAAC,UAAU;QAAEC,QAAQ;IAAG;IACvCuB,eAAeC,IAAAA,mBAAQ,EAAC,iBAAiB;QAAE9B,MAAM;IAAO;IACxD+B,YAAYD,IAAAA,mBAAQ,EAAC,cAAc;QAAE9B,MAAM;IAAO;IAClDgC,WAAWF,IAAAA,mBAAQ,EAAC,aAAa;QAAE9B,MAAM;IAAO,GAC7Cc,OAAO,CAACmB,IAAAA,eAAG,CAAA,CAAC,iBAAiB,CAAC,EAC9B1B,OAAO;AACZ,GACA,CAAC2B,QAAU;QAACC,IAAAA,sBAAW,EAAC,aAAaC,EAAE,CAACF,MAAM9B,KAAK;QAAG+B,IAAAA,sBAAW,EAAC,aAAaC,EAAE,CAACF,MAAM1B,KAAK;QAAG6B,IAAAA,gBAAK,EAAC,YAAYD,EAAE,CAACF,MAAMnB,IAAI;KAAE;AAG5H,MAAMpB,kBAAkB,CAAC2C,OAA2BL,IAAAA,eAAG,CAAA,CAAC,YAAY,EAAEK,KAAK7B,SAAS,CAAC,OAAO,EAAE6B,KAAK5B,QAAQ,CAAC,EAAE,CAAC"}