@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/authentication/providers/ldap/auth-provider-ldap.service.spec.ts"],"sourcesContent":["import { Test, TestingModule } from '@nestjs/testing'\nimport { Mocked } from 'jest-mock'\nimport { Client, InvalidCredentialsError } from 'ldapts'\nimport { CONNECT_ERROR_CODE } from '../../../app.constants'\nimport { USER_PERMISSION, USER_ROLE } from '../../../applications/users/constants/user'\nimport { UserModel } from '../../../applications/users/models/user.model'\nimport { AdminUsersManager } from '../../../applications/users/services/admin-users-manager.service'\nimport { UsersManager } from '../../../applications/users/services/users-manager.service'\nimport * as commonFunctions from '../../../common/functions'\nimport { configuration } from '../../../configuration/config.environment'\nimport type { AuthProviderLDAPConfig } from './auth-ldap.config'\nimport { LDAP_COMMON_ATTR, LDAP_LOGIN_ATTR } from './auth-ldap.constants'\nimport { AuthProviderLDAP } from './auth-provider-ldap.service'\n\njest.mock('ldapts', () => {\n const actual = jest.requireActual('ldapts')\n const mockClientInstance = {\n bind: jest.fn(),\n search: jest.fn(),\n unbind: jest.fn()\n }\n const Client = jest.fn().mockImplementation(() => mockClientInstance)\n return { ...actual, Client }\n})\n\nconst buildUser = (overrides: Partial<UserModel> = {}) =>\n ({\n id: 0,\n login: 'john',\n email: 'old@example.org',\n password: 'hashed',\n role: USER_ROLE.USER,\n isGuest: false,\n isActive: true,\n isAdmin: false,\n makePaths: jest.fn().mockResolvedValue(undefined),\n setFullName: jest.fn(),\n ...overrides\n }) as any\n\nconst ldapClient = {\n bind: jest.fn(),\n search: jest.fn(),\n unbind: jest.fn()\n}\n;(Client as Mocked<any>).mockImplementation(() => ldapClient)\n\ndescribe(AuthProviderLDAP.name, () => {\n let authProviderLDAP: AuthProviderLDAP\n let usersManager: Mocked<UsersManager>\n let adminUsersManager: Mocked<AdminUsersManager>\n\n type LdapConfigOverrides = Omit<Partial<AuthProviderLDAPConfig>, 'attributes' | 'options'> & {\n attributes?: Partial<AuthProviderLDAPConfig['attributes']>\n options?: Partial<AuthProviderLDAPConfig['options']>\n }\n\n const setLdapConfig = (overrides: LdapConfigOverrides = {}) => {\n const base: AuthProviderLDAPConfig = {\n servers: ['ldap://localhost:389'],\n attributes: { login: LDAP_LOGIN_ATTR.UID, email: LDAP_COMMON_ATTR.MAIL },\n baseDN: 'ou=people,dc=example,dc=org',\n filter: '',\n options: {\n autoCreateUser: true,\n autoCreatePermissions: [],\n enablePasswordAuthFallback: true\n }\n }\n const next: AuthProviderLDAPConfig = {\n ...base,\n ...overrides,\n attributes: { ...base.attributes, ...(overrides.attributes || {}) },\n options: { ...base.options, ...(overrides.options || {}) }\n }\n configuration.auth.ldap = next\n ;(authProviderLDAP as any).ldapConfig = next\n ;(authProviderLDAP as any).isAD = [LDAP_LOGIN_ATTR.SAM, LDAP_LOGIN_ATTR.UPN].includes(next.attributes.login)\n ;(authProviderLDAP as any).hasServiceBind = Boolean(next.serviceBindDN && next.serviceBindPassword)\n }\n\n const mockBindResolve = () => {\n ldapClient.bind.mockResolvedValue(undefined)\n ldapClient.unbind.mockResolvedValue(undefined)\n }\n\n const mockBindRejectInvalid = (message = 'invalid') => {\n ldapClient.bind.mockRejectedValue(new InvalidCredentialsError(message))\n ldapClient.unbind.mockResolvedValue(undefined)\n }\n\n const mockSearchEntries = (entries: any[]) => {\n ldapClient.search.mockResolvedValue({ searchEntries: entries })\n }\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n AuthProviderLDAP,\n {\n provide: UsersManager,\n useValue: {\n findUser: jest.fn(),\n logUser: jest.fn(),\n updateAccesses: jest.fn().mockResolvedValue(undefined),\n validateAppPassword: jest.fn(),\n fromUserId: jest.fn()\n }\n },\n {\n provide: AdminUsersManager,\n useValue: {\n createUserOrGuest: jest.fn(),\n updateUserOrGuest: jest.fn()\n }\n }\n ]\n }).compile()\n\n module.useLogger(['fatal'])\n authProviderLDAP = module.get<AuthProviderLDAP>(AuthProviderLDAP)\n adminUsersManager = module.get<Mocked<AdminUsersManager>>(AdminUsersManager)\n usersManager = module.get<Mocked<UsersManager>>(UsersManager)\n })\n\n beforeEach(() => {\n jest.clearAllMocks()\n setLdapConfig()\n usersManager.updateAccesses.mockResolvedValue(undefined)\n })\n\n afterEach(() => {\n jest.restoreAllMocks()\n })\n\n it('should be defined', () => {\n expect(authProviderLDAP).toBeDefined()\n expect(usersManager).toBeDefined()\n expect(adminUsersManager).toBeDefined()\n expect(ldapClient).toBeDefined()\n })\n\n it('should authenticate a guest user via database and bypass LDAP', async () => {\n const guestUser: any = { id: 1, login: 'guest1', isGuest: true, isActive: true }\n usersManager.findUser.mockResolvedValue(guestUser)\n const dbAuthResult: any = { ...guestUser, token: 'jwt' }\n usersManager.logUser.mockResolvedValue(dbAuthResult)\n\n const res = await authProviderLDAP.validateUser('guest1', 'pass', '127.0.0.1')\n\n expect(res).toEqual(dbAuthResult)\n expect(usersManager.logUser).toHaveBeenCalledWith(guestUser, 'pass', '127.0.0.1', undefined)\n expect(Client).not.toHaveBeenCalled()\n })\n\n it('should bypass LDAP when scope is provided', async () => {\n const user = buildUser({ id: 12 })\n usersManager.findUser.mockResolvedValue(user)\n usersManager.logUser.mockResolvedValue(user)\n\n const res = await authProviderLDAP.validateUser('john', 'app-password', '10.0.0.2', 'webdav' as any)\n\n expect(res).toBe(user)\n expect(usersManager.logUser).toHaveBeenCalledWith(user, 'app-password', '10.0.0.2', 'webdav')\n expect(Client).not.toHaveBeenCalled()\n })\n\n it('should throw FORBIDDEN for locked account', async () => {\n usersManager.findUser.mockResolvedValue({ login: 'john', isGuest: false, isActive: false } as UserModel)\n const loggerErrorSpy = jest.spyOn(authProviderLDAP['logger'], 'error').mockImplementation(() => undefined as any)\n\n await expect(authProviderLDAP.validateUser('john', 'pwd')).rejects.toThrow(/account locked/i)\n expect(loggerErrorSpy).toHaveBeenCalled()\n })\n\n it('should return null on invalid LDAP credentials without fallback', async () => {\n const existingUser: any = buildUser({ id: 1 })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindRejectInvalid('invalid credentials')\n\n const res = await authProviderLDAP.validateUser('john', 'badpwd', '10.0.0.1')\n\n expect(res).toBeNull()\n expect(usersManager.logUser).not.toHaveBeenCalled()\n expect(usersManager.updateAccesses).not.toHaveBeenCalled()\n })\n\n it('should return null when LDAP search yields no entries or throws', async () => {\n const existingUser: any = buildUser({ id: 10 })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindResolve()\n mockSearchEntries([])\n\n const resA = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(resA).toBeNull()\n\n ldapClient.search.mockRejectedValue(new Error('search failed'))\n const resB = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(resB).toBeNull()\n expect(usersManager.updateAccesses).not.toHaveBeenCalled()\n })\n\n it('should fallback to local auth when LDAP is unavailable and fallback is enabled', async () => {\n const existingUser: any = buildUser({ id: 2 })\n usersManager.findUser.mockResolvedValue(existingUser)\n usersManager.logUser.mockResolvedValue(existingUser)\n const err = Object.assign(new Error('connect ECONNREFUSED'), { code: Array.from(CONNECT_ERROR_CODE)[0] })\n ldapClient.bind.mockRejectedValue({ errors: [err] })\n ldapClient.unbind.mockResolvedValue(undefined)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd', '10.0.0.3')\n\n expect(res).toBe(existingUser)\n expect(usersManager.logUser).toHaveBeenCalledWith(existingUser, 'pwd', '10.0.0.3')\n })\n\n it('should throw SERVICE_UNAVAILABLE when LDAP is unavailable and fallback is disabled', async () => {\n setLdapConfig({ options: { enablePasswordAuthFallback: false } })\n const existingUser: any = buildUser({ id: 3 })\n usersManager.findUser.mockResolvedValue(existingUser)\n const err = Object.assign(new Error('connect ECONNREFUSED'), { code: Array.from(CONNECT_ERROR_CODE)[0] })\n ldapClient.bind.mockRejectedValue({ errors: [err] })\n ldapClient.unbind.mockResolvedValue(undefined)\n\n await expect(authProviderLDAP.validateUser('john', 'pwd')).rejects.toThrow(/authentication service error/i)\n })\n\n it('should allow admin local fallback when LDAP is unavailable even if fallback is disabled', async () => {\n setLdapConfig({ options: { enablePasswordAuthFallback: false } })\n const existingUser: any = buildUser({ id: 4, isAdmin: true })\n usersManager.findUser.mockResolvedValue(existingUser)\n usersManager.logUser.mockResolvedValue(existingUser)\n const err = Object.assign(new Error('connect ECONNREFUSED'), { code: Array.from(CONNECT_ERROR_CODE)[0] })\n ldapClient.bind.mockRejectedValue({ errors: [err] })\n ldapClient.unbind.mockResolvedValue(undefined)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(res).toBe(existingUser)\n expect(usersManager.logUser).toHaveBeenCalledWith(existingUser, 'pwd', undefined)\n })\n\n it('should return null when LDAP entry lacks required fields', async () => {\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n mockSearchEntries([{ uid: 'jane', cn: 'Jane Doe', mail: undefined }])\n const loggerErrorSpy = jest.spyOn(authProviderLDAP['logger'], 'error').mockImplementation(() => undefined as any)\n\n const res = await authProviderLDAP.validateUser('jane', 'pwd')\n\n expect(res).toBeNull()\n expect(adminUsersManager.createUserOrGuest).not.toHaveBeenCalled()\n expect(loggerErrorSpy).toHaveBeenCalled()\n })\n\n it('should throw UNAUTHORIZED when autoCreateUser is disabled', async () => {\n setLdapConfig({ options: { autoCreateUser: false } })\n usersManager.findUser.mockResolvedValue(null)\n const checkAuthSpy = jest.spyOn<any, any>(authProviderLDAP as any, 'checkAuth').mockResolvedValue({\n uid: 'john',\n mail: 'john@example.org'\n })\n\n await expect(authProviderLDAP.validateUser('john', 'pwd')).rejects.toThrow(/user not found/i)\n checkAuthSpy.mockRestore()\n })\n\n it('should create a new admin user with permissions and name parsed from LDAP', async () => {\n setLdapConfig({\n options: {\n adminGroup: 'Admins',\n autoCreatePermissions: [USER_PERMISSION.PERSONAL_SPACE, USER_PERMISSION.WEBDAV]\n }\n })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n mockSearchEntries([\n {\n uid: 'john',\n givenName: 'John',\n sn: 'Doe',\n mail: 'john@example.org',\n memberOf: ['CN=Admins,OU=Groups,DC=example,DC=org']\n }\n ])\n const createdUser: any = { id: 2, login: 'john', isGuest: false, isActive: true, makePaths: jest.fn() }\n adminUsersManager.createUserOrGuest.mockResolvedValue(createdUser)\n usersManager.fromUserId.mockResolvedValue(createdUser)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd', '192.168.1.10')\n\n expect(adminUsersManager.createUserOrGuest).toHaveBeenCalledWith(\n {\n login: 'john',\n email: 'john@example.org',\n password: 'pwd',\n role: USER_ROLE.ADMINISTRATOR,\n firstName: 'John',\n lastName: 'Doe',\n permissions: 'personal_space,webdav_access'\n },\n USER_ROLE.ADMINISTRATOR\n )\n expect(res).toBe(createdUser)\n expect(usersManager.updateAccesses).toHaveBeenCalledWith(createdUser, '192.168.1.10', true)\n })\n\n it('should accept adminGroup as full DN', async () => {\n setLdapConfig({\n options: {\n adminGroup: 'CN=Admins,OU=Groups,DC=example,DC=org'\n }\n })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n mockSearchEntries([\n {\n uid: 'john',\n givenName: 'John',\n sn: 'Doe',\n mail: 'john@example.org',\n memberOf: ['CN=Admins,OU=Groups,DC=example,DC=org']\n }\n ])\n const createdUser: any = { id: 9, login: 'john', isGuest: false, isActive: true, makePaths: jest.fn() }\n adminUsersManager.createUserOrGuest.mockResolvedValue(createdUser)\n usersManager.fromUserId.mockResolvedValue(createdUser)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(adminUsersManager.createUserOrGuest).toHaveBeenCalledWith(\n expect.objectContaining({ role: USER_ROLE.ADMINISTRATOR }),\n USER_ROLE.ADMINISTRATOR\n )\n expect(res).toBe(createdUser)\n })\n\n it('should use groupOfNames to detect admin membership when memberOf is missing', async () => {\n setLdapConfig({ options: { adminGroup: 'Admins' } })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n ldapClient.search\n .mockResolvedValueOnce({\n searchEntries: [\n {\n uid: 'john',\n cn: 'John Doe',\n mail: 'john@example.org',\n dn: 'uid=john,ou=people,dc=example,dc=org'\n }\n ]\n })\n .mockResolvedValueOnce({ searchEntries: [{ cn: 'Admins' }] })\n const createdUser: any = { id: 3, login: 'john', isGuest: false, isActive: true, makePaths: jest.fn() }\n adminUsersManager.createUserOrGuest.mockResolvedValue(createdUser)\n usersManager.fromUserId.mockResolvedValue(createdUser)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(adminUsersManager.createUserOrGuest).toHaveBeenCalledWith(\n expect.objectContaining({ role: USER_ROLE.ADMINISTRATOR }),\n USER_ROLE.ADMINISTRATOR\n )\n expect(res).toBe(createdUser)\n })\n\n it('should use service bind for LDAP searches when configured', async () => {\n setLdapConfig({\n serviceBindDN: 'cn=svc,dc=example,dc=org',\n serviceBindPassword: 'secret'\n })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n ldapClient.search.mockResolvedValueOnce({\n searchEntries: [{ uid: 'john', cn: 'John Doe', mail: 'john@example.org', dn: 'uid=john,ou=people,dc=example,dc=org' }]\n })\n const createdUser: any = { id: 8, login: 'john', isGuest: false, isActive: true, makePaths: jest.fn() }\n adminUsersManager.createUserOrGuest.mockResolvedValue(createdUser)\n usersManager.fromUserId.mockResolvedValue(createdUser)\n\n await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(ldapClient.bind).toHaveBeenCalledWith('cn=svc,dc=example,dc=org', 'secret')\n expect(ldapClient.bind).toHaveBeenCalledWith('uid=john,ou=people,dc=example,dc=org', 'pwd')\n })\n\n it('should return null when service bind is set but user DN is not found', async () => {\n setLdapConfig({\n serviceBindDN: 'cn=svc,dc=example,dc=org',\n serviceBindPassword: 'secret'\n })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n ldapClient.search.mockResolvedValueOnce({ searchEntries: [] })\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(res).toBeNull()\n expect(ldapClient.bind).toHaveBeenCalledWith('cn=svc,dc=example,dc=org', 'secret')\n expect(ldapClient.bind).not.toHaveBeenCalledWith('uid=john,ou=people,dc=example,dc=org', 'pwd')\n })\n\n it('should return null when user bind fails after service bind', async () => {\n setLdapConfig({\n serviceBindDN: 'cn=svc,dc=example,dc=org',\n serviceBindPassword: 'secret'\n })\n usersManager.findUser.mockResolvedValue(null)\n ldapClient.unbind.mockResolvedValue(undefined)\n ldapClient.bind.mockResolvedValueOnce(undefined).mockRejectedValueOnce(new InvalidCredentialsError('invalid credentials'))\n ldapClient.search.mockResolvedValueOnce({\n searchEntries: [{ dn: 'uid=john,ou=people,dc=example,dc=org', cn: 'John Doe' }]\n })\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(res).toBeNull()\n expect(ldapClient.bind).toHaveBeenCalledWith('cn=svc,dc=example,dc=org', 'secret')\n expect(ldapClient.bind).toHaveBeenCalledWith('uid=john,ou=people,dc=example,dc=org', 'pwd')\n })\n\n it('should keep admin role when adminGroup is not configured', async () => {\n setLdapConfig({ options: { adminGroup: undefined } })\n const existingUser: any = buildUser({ id: 5, role: USER_ROLE.ADMINISTRATOR })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindResolve()\n mockSearchEntries([{ uid: 'john', cn: 'John Doe', mail: 'john@example.org' }])\n jest.spyOn(commonFunctions, 'comparePassword').mockResolvedValue(true)\n\n await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(adminUsersManager.updateUserOrGuest).toHaveBeenCalled()\n const updateArgs = adminUsersManager.updateUserOrGuest.mock.calls[0][1]\n expect(updateArgs).toEqual(expect.objectContaining({ email: 'john@example.org' }))\n expect(updateArgs).toEqual(expect.not.objectContaining({ role: expect.anything() }))\n })\n\n it('should update existing user and avoid reassigning password locally', async () => {\n const existingUser: any = buildUser({ id: 6 })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindResolve()\n mockSearchEntries([{ uid: 'john', displayName: 'Jane Doe', mail: 'john@example.org' }])\n const compareSpy = jest.spyOn(commonFunctions, 'comparePassword').mockResolvedValue(false)\n const splitSpy = jest.spyOn(commonFunctions, 'splitFullName').mockReturnValue({ firstName: 'Jane', lastName: 'Doe' })\n\n const res = await authProviderLDAP.validateUser('john', 'new-plain-password', '127.0.0.2')\n\n expect(adminUsersManager.updateUserOrGuest).toHaveBeenCalledWith(\n 6,\n expect.objectContaining({\n email: 'john@example.org',\n firstName: 'Jane',\n lastName: 'Doe'\n })\n )\n expect(existingUser.password).toBe('hashed')\n expect(existingUser).toMatchObject({ email: 'john@example.org', firstName: 'Jane', lastName: 'Doe' })\n expect(existingUser.setFullName).toHaveBeenCalledWith(true)\n expect(usersManager.updateAccesses).toHaveBeenCalledWith(existingUser, '127.0.0.2', true)\n expect(res).toBe(existingUser)\n\n compareSpy.mockRestore()\n splitSpy.mockRestore()\n })\n\n it('should throw FORBIDDEN when LDAP login does not match user login', async () => {\n const existingUser: any = buildUser({ id: 7, login: 'john' })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindResolve()\n mockSearchEntries([{ uid: 'jane', cn: 'Jane Doe', mail: 'jane@example.org' }])\n\n await expect(authProviderLDAP.validateUser('john', 'pwd')).rejects.toThrow(/account matching error/i)\n })\n\n it('should build LDAP logins and filters for AD and standard LDAP', () => {\n setLdapConfig({ attributes: { login: LDAP_LOGIN_ATTR.UPN }, upnSuffix: 'sync-in.com', filter: '(memberOf=cn=staff)' })\n const adLogin = (authProviderLDAP as any).buildLdapLogin('john')\n expect(adLogin).toBe('john@sync-in.com')\n const adFilter = (authProviderLDAP as any).buildUserFilter('SYNC-IN\\\\john', '(memberOf=cn=staff)')\n expect(adFilter).toContain('(sAMAccountName=john)')\n expect(adFilter).toContain('(userPrincipalName=john)')\n expect(adFilter).toContain('(mail=john)')\n expect(adFilter).toContain('(memberOf=cn=staff)')\n\n setLdapConfig({ attributes: { login: LDAP_LOGIN_ATTR.UID }, filter: '(department=IT)' })\n const ldapFilter = (authProviderLDAP as any).buildUserFilter('john', '(department=IT)')\n expect(ldapFilter).toContain('(uid=john)')\n expect(ldapFilter).toContain('(cn=john)')\n expect(ldapFilter).toContain('(mail=john)')\n expect(ldapFilter).toContain('(department=IT)')\n })\n\n it('should normalize LDAP entries for memberOf and array attributes', () => {\n const entry = {\n uid: ['john'],\n mail: ['john@example.org', 'john2@example.org'],\n memberOf: ['CN=Admins,OU=Groups,DC=example,DC=org', 'CN=Staff,OU=Groups,DC=example,DC=org']\n }\n\n const normalized = (authProviderLDAP as any).convertToLdapUserEntry(entry)\n\n expect(normalized.uid).toBe('john')\n expect(normalized.mail).toBe('john@example.org')\n expect(normalized.memberOf).toEqual(['CN=Admins,OU=Groups,DC=example,DC=org', 'Admins', 'CN=Staff,OU=Groups,DC=example,DC=org', 'Staff'])\n })\n\n it('should build LDAP logins for SAM account name when netbiosName is set', () => {\n setLdapConfig({ attributes: { login: LDAP_LOGIN_ATTR.SAM }, netbiosName: 'SYNC' })\n const samLogin = (authProviderLDAP as any).buildLdapLogin('john')\n expect(samLogin).toBe('SYNC\\\\john')\n })\n})\n"],"names":["jest","mock","actual","requireActual","mockClientInstance","bind","fn","search","unbind","Client","mockImplementation","buildUser","overrides","id","login","email","password","role","USER_ROLE","USER","isGuest","isActive","isAdmin","makePaths","mockResolvedValue","undefined","setFullName","ldapClient","describe","AuthProviderLDAP","name","authProviderLDAP","usersManager","adminUsersManager","setLdapConfig","base","servers","attributes","LDAP_LOGIN_ATTR","UID","LDAP_COMMON_ATTR","MAIL","baseDN","filter","options","autoCreateUser","autoCreatePermissions","enablePasswordAuthFallback","next","configuration","auth","ldap","ldapConfig","isAD","SAM","UPN","includes","hasServiceBind","Boolean","serviceBindDN","serviceBindPassword","mockBindResolve","mockBindRejectInvalid","message","mockRejectedValue","InvalidCredentialsError","mockSearchEntries","entries","searchEntries","beforeAll","module","Test","createTestingModule","providers","provide","UsersManager","useValue","findUser","logUser","updateAccesses","validateAppPassword","fromUserId","AdminUsersManager","createUserOrGuest","updateUserOrGuest","compile","useLogger","get","beforeEach","clearAllMocks","afterEach","restoreAllMocks","it","expect","toBeDefined","guestUser","dbAuthResult","token","res","validateUser","toEqual","toHaveBeenCalledWith","not","toHaveBeenCalled","user","toBe","loggerErrorSpy","spyOn","rejects","toThrow","existingUser","toBeNull","resA","Error","resB","err","Object","assign","code","Array","from","CONNECT_ERROR_CODE","errors","uid","cn","mail","checkAuthSpy","mockRestore","adminGroup","USER_PERMISSION","PERSONAL_SPACE","WEBDAV","givenName","sn","memberOf","createdUser","ADMINISTRATOR","firstName","lastName","permissions","objectContaining","mockResolvedValueOnce","dn","mockRejectedValueOnce","commonFunctions","updateArgs","calls","anything","displayName","compareSpy","splitSpy","mockReturnValue","toMatchObject","upnSuffix","adLogin","buildLdapLogin","adFilter","buildUserFilter","toContain","ldapFilter","entry","normalized","convertToLdapUserEntry","netbiosName","samLogin"],"mappings":"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"}
@@ -1,15 +1,11 @@
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
  });
9
- Object.defineProperty(exports, "AuthMethodDatabase", {
5
+ Object.defineProperty(exports, "AuthProviderMySQL", {
10
6
  enumerable: true,
11
7
  get: function() {
12
- return AuthMethodDatabase;
8
+ return AuthProviderMySQL;
13
9
  }
14
10
  });
15
11
  const _common = require("@nestjs/common");
@@ -24,32 +20,38 @@ function _ts_decorate(decorators, target, key, desc) {
24
20
  function _ts_metadata(k, v) {
25
21
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
26
22
  }
27
- let AuthMethodDatabase = class AuthMethodDatabase {
23
+ let AuthProviderMySQL = class AuthProviderMySQL {
28
24
  async validateUser(loginOrEmail, password, ip, scope) {
29
25
  let user;
30
26
  try {
31
27
  user = await this.usersManager.findUser(loginOrEmail, false);
32
28
  } catch (e) {
33
- this.logger.error(`${this.validateUser.name} - ${e}`);
29
+ this.logger.error({
30
+ tag: this.validateUser.name,
31
+ msg: `${e}`
32
+ });
34
33
  throw new _common.HttpException(_appconstants.CONNECT_ERROR_CODE.has(e.cause?.code) ? 'Authentication service error' : e.cause?.code || e.message, _common.HttpStatus.INTERNAL_SERVER_ERROR);
35
34
  }
36
35
  if (!user) {
37
- this.logger.warn(`${this.validateUser.name} - login or email not found for *${loginOrEmail}*`);
36
+ this.logger.warn({
37
+ tag: this.validateUser.name,
38
+ msg: `login or email not found for *${loginOrEmail}*`
39
+ });
38
40
  return null;
39
41
  }
40
42
  return await this.usersManager.logUser(user, password, ip, scope);
41
43
  }
42
44
  constructor(usersManager){
43
45
  this.usersManager = usersManager;
44
- this.logger = new _common.Logger(AuthMethodDatabase.name);
46
+ this.logger = new _common.Logger(AuthProviderMySQL.name);
45
47
  }
46
48
  };
47
- AuthMethodDatabase = _ts_decorate([
49
+ AuthProviderMySQL = _ts_decorate([
48
50
  (0, _common.Injectable)(),
49
51
  _ts_metadata("design:type", Function),
50
52
  _ts_metadata("design:paramtypes", [
51
53
  typeof _usersmanagerservice.UsersManager === "undefined" ? Object : _usersmanagerservice.UsersManager
52
54
  ])
53
- ], AuthMethodDatabase);
55
+ ], AuthProviderMySQL);
54
56
 
55
- //# sourceMappingURL=auth-method-database.service.js.map
57
+ //# sourceMappingURL=auth-provider-mysql.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/authentication/providers/mysql/auth-provider-mysql.service.ts"],"sourcesContent":["import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common'\nimport { CONNECT_ERROR_CODE } from '../../../app.constants'\nimport { UserModel } from '../../../applications/users/models/user.model'\nimport { UsersManager } from '../../../applications/users/services/users-manager.service'\nimport { AUTH_SCOPE } from '../../constants/scope'\nimport { AuthProvider } from '../auth-providers.models'\n\n@Injectable()\nexport class AuthProviderMySQL implements AuthProvider {\n private readonly logger = new Logger(AuthProviderMySQL.name)\n\n constructor(private readonly usersManager: UsersManager) {}\n\n async validateUser(loginOrEmail: string, password: string, ip?: string, scope?: AUTH_SCOPE): Promise<UserModel> {\n let user: UserModel\n try {\n user = await this.usersManager.findUser(loginOrEmail, false)\n } catch (e) {\n this.logger.error({ tag: this.validateUser.name, msg: `${e}` })\n throw new HttpException(\n CONNECT_ERROR_CODE.has(e.cause?.code) ? 'Authentication service error' : e.cause?.code || e.message,\n HttpStatus.INTERNAL_SERVER_ERROR\n )\n }\n if (!user) {\n this.logger.warn({ tag: this.validateUser.name, msg: `login or email not found for *${loginOrEmail}*` })\n return null\n }\n return await this.usersManager.logUser(user, password, ip, scope)\n }\n}\n"],"names":["AuthProviderMySQL","validateUser","loginOrEmail","password","ip","scope","user","usersManager","findUser","e","logger","error","tag","name","msg","HttpException","CONNECT_ERROR_CODE","has","cause","code","message","HttpStatus","INTERNAL_SERVER_ERROR","warn","logUser","Logger"],"mappings":";;;;+BAQaA;;;eAAAA;;;wBARiD;8BAC3B;qCAEN;;;;;;;;;;AAKtB,IAAA,AAAMA,oBAAN,MAAMA;IAKX,MAAMC,aAAaC,YAAoB,EAAEC,QAAgB,EAAEC,EAAW,EAAEC,KAAkB,EAAsB;QAC9G,IAAIC;QACJ,IAAI;YACFA,OAAO,MAAM,IAAI,CAACC,YAAY,CAACC,QAAQ,CAACN,cAAc;QACxD,EAAE,OAAOO,GAAG;YACV,IAAI,CAACC,MAAM,CAACC,KAAK,CAAC;gBAAEC,KAAK,IAAI,CAACX,YAAY,CAACY,IAAI;gBAAEC,KAAK,GAAGL,GAAG;YAAC;YAC7D,MAAM,IAAIM,qBAAa,CACrBC,gCAAkB,CAACC,GAAG,CAACR,EAAES,KAAK,EAAEC,QAAQ,iCAAiCV,EAAES,KAAK,EAAEC,QAAQV,EAAEW,OAAO,EACnGC,kBAAU,CAACC,qBAAqB;QAEpC;QACA,IAAI,CAAChB,MAAM;YACT,IAAI,CAACI,MAAM,CAACa,IAAI,CAAC;gBAAEX,KAAK,IAAI,CAACX,YAAY,CAACY,IAAI;gBAAEC,KAAK,CAAC,8BAA8B,EAAEZ,aAAa,CAAC,CAAC;YAAC;YACtG,OAAO;QACT;QACA,OAAO,MAAM,IAAI,CAACK,YAAY,CAACiB,OAAO,CAAClB,MAAMH,UAAUC,IAAIC;IAC7D;IAlBA,YAAY,AAAiBE,YAA0B,CAAE;aAA5BA,eAAAA;aAFZG,SAAS,IAAIe,cAAM,CAACzB,kBAAkBa,IAAI;IAED;AAmB5D"}
@@ -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
  });
@@ -18,22 +14,22 @@ const _test = require("../../../applications/users/utils/test");
18
14
  const _functions = require("../../../common/functions");
19
15
  const _cacheservice = require("../../../infrastructure/cache/services/cache.service");
20
16
  const _constants = require("../../../infrastructure/database/constants");
21
- const _authmanagerservice = require("../auth-manager.service");
22
- const _authmethoddatabaseservice = require("./auth-method-database.service");
23
- describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
24
- let authMethodDatabase;
17
+ const _authservice = require("../../auth.service");
18
+ const _authprovidermysqlservice = require("./auth-provider-mysql.service");
19
+ describe(_authprovidermysqlservice.AuthProviderMySQL.name, ()=>{
20
+ let authProviderMySQL;
25
21
  let usersManager;
26
22
  let userTest;
27
23
  beforeAll(async ()=>{
28
24
  const module = await _testing.Test.createTestingModule({
29
25
  providers: [
30
- _authmethoddatabaseservice.AuthMethodDatabase,
26
+ _authprovidermysqlservice.AuthProviderMySQL,
31
27
  _usersmanagerservice.UsersManager,
32
28
  _usersqueriesservice.UsersQueries,
33
29
  _adminusersmanagerservice.AdminUsersManager,
34
30
  _adminusersqueriesservice.AdminUsersQueries,
35
31
  {
36
- provide: _authmanagerservice.AuthManager,
32
+ provide: _authservice.AuthManager,
37
33
  useValue: {}
38
34
  },
39
35
  {
@@ -50,7 +46,7 @@ describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
50
46
  }
51
47
  ]
52
48
  }).compile();
53
- authMethodDatabase = module.get(_authmethoddatabaseservice.AuthMethodDatabase);
49
+ authProviderMySQL = module.get(_authprovidermysqlservice.AuthProviderMySQL);
54
50
  usersManager = module.get(_usersmanagerservice.UsersManager);
55
51
  module.useLogger([
56
52
  'fatal'
@@ -60,7 +56,7 @@ describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
60
56
  usersManager.updateAccesses = jest.fn(()=>Promise.resolve());
61
57
  });
62
58
  it('should be defined', ()=>{
63
- expect(authMethodDatabase).toBeDefined();
59
+ expect(authProviderMySQL).toBeDefined();
64
60
  expect(usersManager).toBeDefined();
65
61
  expect(userTest).toBeDefined();
66
62
  });
@@ -70,7 +66,7 @@ describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
70
66
  ...userTest,
71
67
  password: await (0, _functions.hashPassword)(userTest.password)
72
68
  });
73
- expect(await authMethodDatabase.validateUser(userTest.login, userTest.password)).toBeDefined();
69
+ expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeDefined();
74
70
  expect(userTest.makePaths).toHaveBeenCalled();
75
71
  });
76
72
  it('should not validate the user', async ()=>{
@@ -85,11 +81,11 @@ describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
85
81
  code: Array.from(_appconstants.CONNECT_ERROR_CODE)[0]
86
82
  }
87
83
  }));
88
- expect(await authMethodDatabase.validateUser(userTest.login, userTest.password)).toBeNull();
89
- expect(await authMethodDatabase.validateUser(userTest.login, userTest.password)).toBeNull();
90
- await expect(authMethodDatabase.validateUser(userTest.login, userTest.password)).rejects.toThrow(/db error/i);
91
- await expect(authMethodDatabase.validateUser(userTest.login, userTest.password)).rejects.toThrow(/authentication service/i);
84
+ expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeNull();
85
+ expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeNull();
86
+ await expect(authProviderMySQL.validateUser(userTest.login, userTest.password)).rejects.toThrow(/db error/i);
87
+ await expect(authProviderMySQL.validateUser(userTest.login, userTest.password)).rejects.toThrow(/authentication service/i);
92
88
  });
93
89
  });
94
90
 
95
- //# sourceMappingURL=auth-method-database.service.spec.js.map
91
+ //# sourceMappingURL=auth-provider-mysql.service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/authentication/providers/mysql/auth-provider-mysql.service.spec.ts"],"sourcesContent":["import { Test, TestingModule } from '@nestjs/testing'\nimport { CONNECT_ERROR_CODE } from '../../../app.constants'\nimport { NotificationsManager } from '../../../applications/notifications/services/notifications-manager.service'\nimport { UserModel } from '../../../applications/users/models/user.model'\nimport { AdminUsersManager } from '../../../applications/users/services/admin-users-manager.service'\nimport { AdminUsersQueries } from '../../../applications/users/services/admin-users-queries.service'\nimport { UsersManager } from '../../../applications/users/services/users-manager.service'\nimport { UsersQueries } from '../../../applications/users/services/users-queries.service'\nimport { generateUserTest } from '../../../applications/users/utils/test'\nimport { hashPassword } from '../../../common/functions'\nimport { Cache } from '../../../infrastructure/cache/services/cache.service'\nimport { DB_TOKEN_PROVIDER } from '../../../infrastructure/database/constants'\nimport { AuthManager } from '../../auth.service'\nimport { AuthProviderMySQL } from './auth-provider-mysql.service'\n\ndescribe(AuthProviderMySQL.name, () => {\n let authProviderMySQL: AuthProviderMySQL\n let usersManager: UsersManager\n let userTest: UserModel\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n AuthProviderMySQL,\n UsersManager,\n UsersQueries,\n AdminUsersManager,\n AdminUsersQueries,\n { provide: AuthManager, useValue: {} },\n { provide: DB_TOKEN_PROVIDER, useValue: {} },\n { provide: Cache, useValue: {} },\n { provide: NotificationsManager, useValue: {} }\n ]\n }).compile()\n\n authProviderMySQL = module.get<AuthProviderMySQL>(AuthProviderMySQL)\n usersManager = module.get<UsersManager>(UsersManager)\n module.useLogger(['fatal'])\n // mocks\n userTest = new UserModel(generateUserTest(), false)\n usersManager.updateAccesses = jest.fn(() => Promise.resolve())\n })\n\n it('should be defined', () => {\n expect(authProviderMySQL).toBeDefined()\n expect(usersManager).toBeDefined()\n expect(userTest).toBeDefined()\n })\n\n it('should validate the user', async () => {\n userTest.makePaths = jest.fn()\n usersManager.findUser = jest.fn().mockReturnValue({ ...userTest, password: await hashPassword(userTest.password) })\n expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeDefined()\n expect(userTest.makePaths).toHaveBeenCalled()\n })\n\n it('should not validate the user', async () => {\n usersManager.findUser = jest\n .fn()\n .mockReturnValueOnce(null)\n .mockReturnValueOnce({ ...userTest, password: await hashPassword('bar') })\n .mockRejectedValueOnce({ message: 'db error', code: 'OTHER' })\n .mockRejectedValueOnce(\n new Error('Authentication service error', {\n cause: { code: Array.from(CONNECT_ERROR_CODE)[0] }\n })\n )\n expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeNull()\n expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeNull()\n await expect(authProviderMySQL.validateUser(userTest.login, userTest.password)).rejects.toThrow(/db error/i)\n await expect(authProviderMySQL.validateUser(userTest.login, userTest.password)).rejects.toThrow(/authentication service/i)\n })\n})\n"],"names":["describe","AuthProviderMySQL","name","authProviderMySQL","usersManager","userTest","beforeAll","module","Test","createTestingModule","providers","UsersManager","UsersQueries","AdminUsersManager","AdminUsersQueries","provide","AuthManager","useValue","DB_TOKEN_PROVIDER","Cache","NotificationsManager","compile","get","useLogger","UserModel","generateUserTest","updateAccesses","jest","fn","Promise","resolve","it","expect","toBeDefined","makePaths","findUser","mockReturnValue","password","hashPassword","validateUser","login","toHaveBeenCalled","mockReturnValueOnce","mockRejectedValueOnce","message","code","Error","cause","Array","from","CONNECT_ERROR_CODE","toBeNull","rejects","toThrow"],"mappings":";;;;yBAAoC;8BACD;6CACE;2BACX;0CACQ;0CACA;qCACL;qCACA;sBACI;2BACJ;8BACP;2BACY;6BACN;0CACM;AAElCA,SAASC,2CAAiB,CAACC,IAAI,EAAE;IAC/B,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJC,UAAU;QACR,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,WAAW;gBACTT,2CAAiB;gBACjBU,iCAAY;gBACZC,iCAAY;gBACZC,2CAAiB;gBACjBC,2CAAiB;gBACjB;oBAAEC,SAASC,wBAAW;oBAAEC,UAAU,CAAC;gBAAE;gBACrC;oBAAEF,SAASG,4BAAiB;oBAAED,UAAU,CAAC;gBAAE;gBAC3C;oBAAEF,SAASI,mBAAK;oBAAEF,UAAU,CAAC;gBAAE;gBAC/B;oBAAEF,SAASK,iDAAoB;oBAAEH,UAAU,CAAC;gBAAE;aAC/C;QACH,GAAGI,OAAO;QAEVlB,oBAAoBI,OAAOe,GAAG,CAAoBrB,2CAAiB;QACnEG,eAAeG,OAAOe,GAAG,CAAeX,iCAAY;QACpDJ,OAAOgB,SAAS,CAAC;YAAC;SAAQ;QAC1B,QAAQ;QACRlB,WAAW,IAAImB,oBAAS,CAACC,IAAAA,sBAAgB,KAAI;QAC7CrB,aAAasB,cAAc,GAAGC,KAAKC,EAAE,CAAC,IAAMC,QAAQC,OAAO;IAC7D;IAEAC,GAAG,qBAAqB;QACtBC,OAAO7B,mBAAmB8B,WAAW;QACrCD,OAAO5B,cAAc6B,WAAW;QAChCD,OAAO3B,UAAU4B,WAAW;IAC9B;IAEAF,GAAG,4BAA4B;QAC7B1B,SAAS6B,SAAS,GAAGP,KAAKC,EAAE;QAC5BxB,aAAa+B,QAAQ,GAAGR,KAAKC,EAAE,GAAGQ,eAAe,CAAC;YAAE,GAAG/B,QAAQ;YAAEgC,UAAU,MAAMC,IAAAA,uBAAY,EAACjC,SAASgC,QAAQ;QAAE;QACjHL,OAAO,MAAM7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGJ,WAAW;QAC3FD,OAAO3B,SAAS6B,SAAS,EAAEO,gBAAgB;IAC7C;IAEAV,GAAG,gCAAgC;QACjC3B,aAAa+B,QAAQ,GAAGR,KACrBC,EAAE,GACFc,mBAAmB,CAAC,MACpBA,mBAAmB,CAAC;YAAE,GAAGrC,QAAQ;YAAEgC,UAAU,MAAMC,IAAAA,uBAAY,EAAC;QAAO,GACvEK,qBAAqB,CAAC;YAAEC,SAAS;YAAYC,MAAM;QAAQ,GAC3DF,qBAAqB,CACpB,IAAIG,MAAM,gCAAgC;YACxCC,OAAO;gBAAEF,MAAMG,MAAMC,IAAI,CAACC,gCAAkB,CAAC,CAAC,EAAE;YAAC;QACnD;QAEJlB,OAAO,MAAM7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGc,QAAQ;QACxFnB,OAAO,MAAM7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGc,QAAQ;QACxF,MAAMnB,OAAO7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGe,OAAO,CAACC,OAAO,CAAC;QAChG,MAAMrB,OAAO7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGe,OAAO,CAACC,OAAO,CAAC;IAClG;AACF"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get OAuthDesktopCallBackURI () {
13
+ return OAuthDesktopCallBackURI;
14
+ },
15
+ get OAuthDesktopLoopbackPorts () {
16
+ return OAuthDesktopLoopbackPorts;
17
+ },
18
+ get OAuthDesktopPortParam () {
19
+ return OAuthDesktopPortParam;
20
+ }
21
+ });
22
+ const OAuthDesktopPortParam = 'desktop_port';
23
+ const OAuthDesktopCallBackURI = '/oidc/callback';
24
+ const OAuthDesktopLoopbackPorts = new Set([
25
+ 49152,
26
+ 49153,
27
+ 49154
28
+ ]);
29
+
30
+ //# sourceMappingURL=auth-oidc-desktop.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc-desktop.constants.ts"],"sourcesContent":["export const OAuthDesktopPortParam = 'desktop_port' as const\nexport const OAuthDesktopCallBackURI = '/oidc/callback' as const\nexport const OAuthDesktopLoopbackPorts = new Set<number>([49152, 49153, 49154])\n"],"names":["OAuthDesktopCallBackURI","OAuthDesktopLoopbackPorts","OAuthDesktopPortParam","Set"],"mappings":";;;;;;;;;;;QACaA;eAAAA;;QACAC;eAAAA;;QAFAC;eAAAA;;;AAAN,MAAMA,wBAAwB;AAC9B,MAAMF,0BAA0B;AAChC,MAAMC,4BAA4B,IAAIE,IAAY;IAAC;IAAO;IAAO;CAAM"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get AuthProviderOIDCConfig () {
13
+ return AuthProviderOIDCConfig;
14
+ },
15
+ get AuthProviderOIDCOptionsConfig () {
16
+ return AuthProviderOIDCOptionsConfig;
17
+ },
18
+ get AuthProviderOIDCSecurityConfig () {
19
+ return AuthProviderOIDCSecurityConfig;
20
+ }
21
+ });
22
+ const _classtransformer = require("class-transformer");
23
+ const _classvalidator = require("class-validator");
24
+ const _user = require("../../../applications/users/constants/user");
25
+ const _authoidcconstants = require("./auth-oidc.constants");
26
+ function _ts_decorate(decorators, target, key, desc) {
27
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
31
+ }
32
+ function _ts_metadata(k, v) {
33
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
+ }
35
+ let AuthProviderOIDCSecurityConfig = class AuthProviderOIDCSecurityConfig {
36
+ constructor(){
37
+ this.scope = 'openid email profile';
38
+ this.tokenEndpointAuthMethod = _authoidcconstants.OAuthTokenEndpoint.ClientSecretBasic;
39
+ this.tokenSigningAlg = 'RS256';
40
+ this.userInfoSigningAlg = undefined;
41
+ this.skipSubjectCheck = false;
42
+ }
43
+ };
44
+ _ts_decorate([
45
+ (0, _classvalidator.IsString)(),
46
+ (0, _classvalidator.Matches)(/\bopenid\b/, {
47
+ message: 'OIDC scope must include "openid"'
48
+ })
49
+ ], AuthProviderOIDCSecurityConfig.prototype, "scope", void 0);
50
+ _ts_decorate([
51
+ (0, _classtransformer.Transform)(({ value })=>value || _authoidcconstants.OAuthTokenEndpoint.ClientSecretBasic),
52
+ (0, _classvalidator.IsEnum)(_authoidcconstants.OAuthTokenEndpoint),
53
+ _ts_metadata("design:type", typeof _authoidcconstants.OAuthTokenEndpoint === "undefined" ? Object : _authoidcconstants.OAuthTokenEndpoint)
54
+ ], AuthProviderOIDCSecurityConfig.prototype, "tokenEndpointAuthMethod", void 0);
55
+ _ts_decorate([
56
+ (0, _classvalidator.IsString)(),
57
+ (0, _classvalidator.IsNotEmpty)()
58
+ ], AuthProviderOIDCSecurityConfig.prototype, "tokenSigningAlg", void 0);
59
+ _ts_decorate([
60
+ (0, _classvalidator.IsOptional)(),
61
+ (0, _classvalidator.IsString)()
62
+ ], AuthProviderOIDCSecurityConfig.prototype, "userInfoSigningAlg", void 0);
63
+ _ts_decorate([
64
+ (0, _classvalidator.IsOptional)(),
65
+ (0, _classvalidator.IsBoolean)()
66
+ ], AuthProviderOIDCSecurityConfig.prototype, "skipSubjectCheck", void 0);
67
+ let AuthProviderOIDCOptionsConfig = class AuthProviderOIDCOptionsConfig {
68
+ constructor(){
69
+ this.autoCreateUser = true;
70
+ this.autoCreatePermissions = [];
71
+ this.autoRedirect = false;
72
+ this.enablePasswordAuth = true;
73
+ this.buttonText = 'Continue with OpenID Connect';
74
+ }
75
+ };
76
+ _ts_decorate([
77
+ (0, _classvalidator.IsOptional)(),
78
+ (0, _classvalidator.IsBoolean)()
79
+ ], AuthProviderOIDCOptionsConfig.prototype, "autoCreateUser", void 0);
80
+ _ts_decorate([
81
+ (0, _classvalidator.IsOptional)(),
82
+ (0, _classvalidator.IsArray)(),
83
+ (0, _classvalidator.IsEnum)(_user.USER_PERMISSION, {
84
+ each: true
85
+ }),
86
+ _ts_metadata("design:type", Array)
87
+ ], AuthProviderOIDCOptionsConfig.prototype, "autoCreatePermissions", void 0);
88
+ _ts_decorate([
89
+ (0, _classvalidator.IsOptional)(),
90
+ (0, _classvalidator.IsBoolean)()
91
+ ], AuthProviderOIDCOptionsConfig.prototype, "autoRedirect", void 0);
92
+ _ts_decorate([
93
+ (0, _classvalidator.IsOptional)(),
94
+ (0, _classvalidator.IsBoolean)()
95
+ ], AuthProviderOIDCOptionsConfig.prototype, "enablePasswordAuth", void 0);
96
+ _ts_decorate([
97
+ (0, _classvalidator.IsOptional)(),
98
+ (0, _classvalidator.IsString)(),
99
+ _ts_metadata("design:type", String)
100
+ ], AuthProviderOIDCOptionsConfig.prototype, "adminRoleOrGroup", void 0);
101
+ _ts_decorate([
102
+ (0, _classvalidator.IsString)(),
103
+ (0, _classvalidator.IsNotEmpty)(),
104
+ _ts_metadata("design:type", String)
105
+ ], AuthProviderOIDCOptionsConfig.prototype, "buttonText", void 0);
106
+ let AuthProviderOIDCConfig = class AuthProviderOIDCConfig {
107
+ constructor(){
108
+ this.options = new AuthProviderOIDCOptionsConfig();
109
+ this.security = new AuthProviderOIDCSecurityConfig();
110
+ }
111
+ };
112
+ _ts_decorate([
113
+ (0, _classvalidator.IsString)(),
114
+ (0, _classvalidator.IsNotEmpty)(),
115
+ _ts_metadata("design:type", String)
116
+ ], AuthProviderOIDCConfig.prototype, "issuerUrl", void 0);
117
+ _ts_decorate([
118
+ (0, _classvalidator.IsString)(),
119
+ (0, _classvalidator.IsNotEmpty)(),
120
+ _ts_metadata("design:type", String)
121
+ ], AuthProviderOIDCConfig.prototype, "clientId", void 0);
122
+ _ts_decorate([
123
+ (0, _classvalidator.IsString)(),
124
+ (0, _classvalidator.IsNotEmpty)(),
125
+ _ts_metadata("design:type", String)
126
+ ], AuthProviderOIDCConfig.prototype, "clientSecret", void 0);
127
+ _ts_decorate([
128
+ (0, _classvalidator.IsString)(),
129
+ (0, _classvalidator.IsNotEmpty)(),
130
+ _ts_metadata("design:type", String)
131
+ ], AuthProviderOIDCConfig.prototype, "redirectUri", void 0);
132
+ _ts_decorate([
133
+ (0, _classvalidator.IsDefined)(),
134
+ (0, _classvalidator.IsNotEmptyObject)(),
135
+ (0, _classvalidator.IsObject)(),
136
+ (0, _classvalidator.ValidateNested)(),
137
+ (0, _classtransformer.Type)(()=>AuthProviderOIDCOptionsConfig),
138
+ _ts_metadata("design:type", typeof AuthProviderOIDCOptionsConfig === "undefined" ? Object : AuthProviderOIDCOptionsConfig)
139
+ ], AuthProviderOIDCConfig.prototype, "options", void 0);
140
+ _ts_decorate([
141
+ (0, _classvalidator.IsDefined)(),
142
+ (0, _classvalidator.IsNotEmptyObject)(),
143
+ (0, _classvalidator.IsObject)(),
144
+ (0, _classvalidator.ValidateNested)(),
145
+ (0, _classtransformer.Type)(()=>AuthProviderOIDCSecurityConfig),
146
+ _ts_metadata("design:type", typeof AuthProviderOIDCSecurityConfig === "undefined" ? Object : AuthProviderOIDCSecurityConfig)
147
+ ], AuthProviderOIDCConfig.prototype, "security", void 0);
148
+
149
+ //# sourceMappingURL=auth-oidc.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc.config.ts"],"sourcesContent":["import { Transform, Type } from 'class-transformer'\nimport {\n IsArray,\n IsBoolean,\n IsDefined,\n IsEnum,\n IsNotEmpty,\n IsNotEmptyObject,\n IsObject,\n IsOptional,\n IsString,\n Matches,\n ValidateNested\n} from 'class-validator'\nimport { USER_PERMISSION } from '../../../applications/users/constants/user'\nimport { OAuthTokenEndpoint } from './auth-oidc.constants'\n\nexport class AuthProviderOIDCSecurityConfig {\n @IsString()\n @Matches(/\\bopenid\\b/, { message: 'OIDC scope must include \"openid\"' })\n scope = 'openid email profile'\n\n @Transform(({ value }) => value || OAuthTokenEndpoint.ClientSecretBasic)\n @IsEnum(OAuthTokenEndpoint)\n tokenEndpointAuthMethod: OAuthTokenEndpoint = OAuthTokenEndpoint.ClientSecretBasic\n\n @IsString()\n @IsNotEmpty()\n tokenSigningAlg = 'RS256'\n\n @IsOptional()\n @IsString()\n userInfoSigningAlg? = undefined\n\n @IsOptional()\n @IsBoolean()\n skipSubjectCheck? = false\n}\n\nexport class AuthProviderOIDCOptionsConfig {\n @IsOptional()\n @IsBoolean()\n autoCreateUser? = true\n\n @IsOptional()\n @IsArray()\n @IsEnum(USER_PERMISSION, { each: true })\n autoCreatePermissions?: USER_PERMISSION[] = []\n\n @IsOptional()\n @IsBoolean()\n autoRedirect? = false\n\n @IsOptional()\n @IsBoolean()\n enablePasswordAuth? = true\n\n @IsOptional()\n @IsString()\n adminRoleOrGroup?: string\n\n @IsString()\n @IsNotEmpty()\n buttonText: string = 'Continue with OpenID Connect'\n}\n\nexport class AuthProviderOIDCConfig {\n @IsString()\n @IsNotEmpty()\n issuerUrl: string\n\n @IsString()\n @IsNotEmpty()\n clientId: string\n\n @IsString()\n @IsNotEmpty()\n clientSecret: string\n\n @IsString()\n @IsNotEmpty()\n redirectUri: string\n\n @IsDefined()\n @IsNotEmptyObject()\n @IsObject()\n @ValidateNested()\n @Type(() => AuthProviderOIDCOptionsConfig)\n options: AuthProviderOIDCOptionsConfig = new AuthProviderOIDCOptionsConfig()\n\n @IsDefined()\n @IsNotEmptyObject()\n @IsObject()\n @ValidateNested()\n @Type(() => AuthProviderOIDCSecurityConfig)\n security: AuthProviderOIDCSecurityConfig = new AuthProviderOIDCSecurityConfig()\n}\n"],"names":["AuthProviderOIDCConfig","AuthProviderOIDCOptionsConfig","AuthProviderOIDCSecurityConfig","scope","tokenEndpointAuthMethod","OAuthTokenEndpoint","ClientSecretBasic","tokenSigningAlg","userInfoSigningAlg","undefined","skipSubjectCheck","message","value","autoCreateUser","autoCreatePermissions","autoRedirect","enablePasswordAuth","buttonText","each","options","security"],"mappings":";;;;;;;;;;;QAkEaA;eAAAA;;QA3BAC;eAAAA;;QAtBAC;eAAAA;;;kCAjBmB;gCAazB;sBACyB;mCACG;;;;;;;;;;AAE5B,IAAA,AAAMA,iCAAN,MAAMA;;aAGXC,QAAQ;aAIRC,0BAA8CC,qCAAkB,CAACC,iBAAiB;aAIlFC,kBAAkB;aAIlBC,qBAAsBC;aAItBC,mBAAoB;;AACtB;;;;QAlB2BC,SAAS;;;;sCAGtB,EAAEC,KAAK,EAAE,GAAKA,SAASP,qCAAkB,CAACC,iBAAiB;;;;;;;;;;;;;;;;AAiBlE,IAAA,AAAML,gCAAN,MAAMA;;aAGXY,iBAAkB;aAKlBC,wBAA4C,EAAE;aAI9CC,eAAgB;aAIhBC,qBAAsB;aAQtBC,aAAqB;;AACvB;;;;;;;;;QAlB6BC,MAAM;;;;;;;;;;;;;;;;;;;;;;AAoB5B,IAAA,AAAMlB,yBAAN,MAAMA;;aAsBXmB,UAAyC,IAAIlB;aAO7CmB,WAA2C,IAAIlB;;AACjD;;;;;;;;;;;;;;;;;;;;;;;;;;oCATcD;;;;;;;;oCAOAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get OAuthCookie () {
13
+ return OAuthCookie;
14
+ },
15
+ get OAuthCookieSettings () {
16
+ return OAuthCookieSettings;
17
+ },
18
+ get OAuthTokenEndpoint () {
19
+ return OAuthTokenEndpoint;
20
+ }
21
+ });
22
+ var OAuthTokenEndpoint = /*#__PURE__*/ function(OAuthTokenEndpoint) {
23
+ OAuthTokenEndpoint["ClientSecretPost"] = "client_secret_post";
24
+ OAuthTokenEndpoint["ClientSecretBasic"] = "client_secret_basic";
25
+ return OAuthTokenEndpoint;
26
+ }({});
27
+ const OAuthCookie = {
28
+ State: 'oidc_state',
29
+ Nonce: 'oidc_nonce',
30
+ CodeVerifier: 'oidc_code_verifier'
31
+ };
32
+ const OAuthCookieSettings = {
33
+ httpOnly: true,
34
+ path: '/',
35
+ maxAge: 600,
36
+ sameSite: 'lax'
37
+ };
38
+
39
+ //# sourceMappingURL=auth-oidc.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc.constants.ts"],"sourcesContent":["export enum OAuthTokenEndpoint {\n ClientSecretPost = 'client_secret_post',\n ClientSecretBasic = 'client_secret_basic'\n}\n\nexport const OAuthCookie = {\n State: 'oidc_state',\n Nonce: 'oidc_nonce',\n CodeVerifier: 'oidc_code_verifier'\n} as const\n\nexport const OAuthCookieSettings = { httpOnly: true, path: '/', maxAge: 600, sameSite: 'lax' } as const\n"],"names":["OAuthCookie","OAuthCookieSettings","OAuthTokenEndpoint","State","Nonce","CodeVerifier","httpOnly","path","maxAge","sameSite"],"mappings":";;;;;;;;;;;QAKaA;eAAAA;;QAMAC;eAAAA;;QAXDC;eAAAA;;;AAAL,IAAA,AAAKA,4CAAAA;;;WAAAA;;AAKL,MAAMF,cAAc;IACzBG,OAAO;IACPC,OAAO;IACPC,cAAc;AAChB;AAEO,MAAMJ,sBAAsB;IAAEK,UAAU;IAAMC,MAAM;IAAKC,QAAQ;IAAKC,UAAU;AAAM"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "AuthOIDCController", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return AuthOIDCController;
9
+ }
10
+ });
11
+ const _common = require("@nestjs/common");
12
+ const _fastify = require("fastify");
13
+ const _authservice = require("../../auth.service");
14
+ const _routes = require("../../constants/routes");
15
+ const _authtokenskipdecorator = require("../../decorators/auth-token-skip.decorator");
16
+ const _authoidcdesktopconstants = require("./auth-oidc-desktop.constants");
17
+ const _authprovideroidcservice = require("./auth-provider-oidc.service");
18
+ function _ts_decorate(decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ }
24
+ function _ts_metadata(k, v) {
25
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
26
+ }
27
+ function _ts_param(paramIndex, decorator) {
28
+ return function(target, key) {
29
+ decorator(target, key, paramIndex);
30
+ };
31
+ }
32
+ let AuthOIDCController = class AuthOIDCController {
33
+ async oidcLogin(desktopPort, res) {
34
+ const url = await this.authProviderOIDC.getAuthorizationUrl(res, desktopPort);
35
+ // Redirect to OIDC provider
36
+ return res.redirect(url, _common.HttpStatus.FOUND);
37
+ }
38
+ async oidcCallback(query, req, res) {
39
+ const user = await this.authProviderOIDC.handleCallback(req, res, query);
40
+ const r = await this.authManager.setCookies(user, res, false);
41
+ return res.redirect(this.authProviderOIDC.getRedirectCallbackUrl(r.token.access_expiration, r.token.refresh_expiration), _common.HttpStatus.FOUND);
42
+ }
43
+ constructor(authManager, authProviderOIDC){
44
+ this.authManager = authManager;
45
+ this.authProviderOIDC = authProviderOIDC;
46
+ }
47
+ };
48
+ _ts_decorate([
49
+ (0, _common.Get)(_routes.AUTH_ROUTE.OIDC_LOGIN),
50
+ (0, _authtokenskipdecorator.AuthTokenSkip)(),
51
+ _ts_param(0, (0, _common.Query)(_authoidcdesktopconstants.OAuthDesktopPortParam)),
52
+ _ts_param(1, (0, _common.Res)()),
53
+ _ts_metadata("design:type", Function),
54
+ _ts_metadata("design:paramtypes", [
55
+ Number,
56
+ typeof _fastify.FastifyReply === "undefined" ? Object : _fastify.FastifyReply
57
+ ]),
58
+ _ts_metadata("design:returntype", Promise)
59
+ ], AuthOIDCController.prototype, "oidcLogin", null);
60
+ _ts_decorate([
61
+ (0, _common.Get)(_routes.AUTH_ROUTE.OIDC_CALLBACK),
62
+ (0, _authtokenskipdecorator.AuthTokenSkip)(),
63
+ _ts_param(0, (0, _common.Query)()),
64
+ _ts_param(1, (0, _common.Req)()),
65
+ _ts_param(2, (0, _common.Res)()),
66
+ _ts_metadata("design:type", Function),
67
+ _ts_metadata("design:paramtypes", [
68
+ typeof Record === "undefined" ? Object : Record,
69
+ typeof _fastify.FastifyRequest === "undefined" ? Object : _fastify.FastifyRequest,
70
+ typeof _fastify.FastifyReply === "undefined" ? Object : _fastify.FastifyReply
71
+ ]),
72
+ _ts_metadata("design:returntype", Promise)
73
+ ], AuthOIDCController.prototype, "oidcCallback", null);
74
+ AuthOIDCController = _ts_decorate([
75
+ (0, _common.Controller)(_routes.AUTH_ROUTE.BASE),
76
+ _ts_metadata("design:type", Function),
77
+ _ts_metadata("design:paramtypes", [
78
+ typeof _authservice.AuthManager === "undefined" ? Object : _authservice.AuthManager,
79
+ typeof _authprovideroidcservice.AuthProviderOIDC === "undefined" ? Object : _authprovideroidcservice.AuthProviderOIDC
80
+ ])
81
+ ], AuthOIDCController);
82
+
83
+ //# sourceMappingURL=auth-oidc.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc.controller.ts"],"sourcesContent":["import { Controller, Get, HttpStatus, Query, Req, Res } from '@nestjs/common'\nimport { FastifyReply, FastifyRequest } from 'fastify'\nimport type { UserModel } from '../../../applications/users/models/user.model'\nimport { AuthManager } from '../../auth.service'\nimport { AUTH_ROUTE } from '../../constants/routes'\nimport { AuthTokenSkip } from '../../decorators/auth-token-skip.decorator'\nimport type { LoginResponseDto } from '../../dto/login-response.dto'\nimport { OAuthDesktopPortParam } from './auth-oidc-desktop.constants'\nimport { AuthProviderOIDC } from './auth-provider-oidc.service'\n\n@Controller(AUTH_ROUTE.BASE)\nexport class AuthOIDCController {\n constructor(\n private readonly authManager: AuthManager,\n private readonly authProviderOIDC: AuthProviderOIDC\n ) {}\n\n @Get(AUTH_ROUTE.OIDC_LOGIN)\n @AuthTokenSkip()\n async oidcLogin(@Query(OAuthDesktopPortParam) desktopPort: number, @Res() res: FastifyReply): Promise<void> {\n const url = await this.authProviderOIDC.getAuthorizationUrl(res, desktopPort)\n // Redirect to OIDC provider\n return res.redirect(url, HttpStatus.FOUND)\n }\n\n @Get(AUTH_ROUTE.OIDC_CALLBACK)\n @AuthTokenSkip()\n async oidcCallback(@Query() query: Record<string, string>, @Req() req: FastifyRequest, @Res() res: FastifyReply): Promise<void> {\n const user: UserModel = await this.authProviderOIDC.handleCallback(req, res, query)\n const r: LoginResponseDto = await this.authManager.setCookies(user, res, false)\n return res.redirect(this.authProviderOIDC.getRedirectCallbackUrl(r.token.access_expiration, r.token.refresh_expiration), HttpStatus.FOUND)\n }\n}\n"],"names":["AuthOIDCController","oidcLogin","desktopPort","res","url","authProviderOIDC","getAuthorizationUrl","redirect","HttpStatus","FOUND","oidcCallback","query","req","user","handleCallback","r","authManager","setCookies","getRedirectCallbackUrl","token","access_expiration","refresh_expiration","OIDC_LOGIN","OIDC_CALLBACK","BASE"],"mappings":";;;;+BAWaA;;;eAAAA;;;wBAXgD;yBAChB;6BAEjB;wBACD;wCACG;0CAEQ;yCACL;;;;;;;;;;;;;;;AAG1B,IAAA,AAAMA,qBAAN,MAAMA;IAMX,MAEMC,UAAU,AAA8BC,WAAmB,EAAE,AAAOC,GAAiB,EAAiB;QAC1G,MAAMC,MAAM,MAAM,IAAI,CAACC,gBAAgB,CAACC,mBAAmB,CAACH,KAAKD;QACjE,4BAA4B;QAC5B,OAAOC,IAAII,QAAQ,CAACH,KAAKI,kBAAU,CAACC,KAAK;IAC3C;IAEA,MAEMC,aAAa,AAASC,KAA6B,EAAE,AAAOC,GAAmB,EAAE,AAAOT,GAAiB,EAAiB;QAC9H,MAAMU,OAAkB,MAAM,IAAI,CAACR,gBAAgB,CAACS,cAAc,CAACF,KAAKT,KAAKQ;QAC7E,MAAMI,IAAsB,MAAM,IAAI,CAACC,WAAW,CAACC,UAAU,CAACJ,MAAMV,KAAK;QACzE,OAAOA,IAAII,QAAQ,CAAC,IAAI,CAACF,gBAAgB,CAACa,sBAAsB,CAACH,EAAEI,KAAK,CAACC,iBAAiB,EAAEL,EAAEI,KAAK,CAACE,kBAAkB,GAAGb,kBAAU,CAACC,KAAK;IAC3I;IAnBA,YACE,AAAiBO,WAAwB,EACzC,AAAiBX,gBAAkC,CACnD;aAFiBW,cAAAA;aACAX,mBAAAA;IAChB;AAiBL;;wCAfkBiB;;;;;;;;;;;;wCAQAC;;;;;;;;;;;;;;+CAfKC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=auth-oidc.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc.interfaces.ts"],"names":[],"mappings":""}