@sync-in/server 1.8.1 → 1.9.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 (603) hide show
  1. package/CHANGELOG.md +56 -11
  2. package/environment/environment.dist.yaml +29 -26
  3. package/package.json +15 -15
  4. package/server/app.constants.js +9 -0
  5. package/server/app.constants.js.map +1 -1
  6. package/server/app.module.js +4 -0
  7. package/server/app.module.js.map +1 -1
  8. package/server/applications/admin/admin.module.js +6 -1
  9. package/server/applications/admin/admin.module.js.map +1 -1
  10. package/server/applications/{notifications/interfaces/user-mail-notification.js → admin/interfaces/check-update.interfaces.js} +1 -1
  11. package/server/applications/admin/interfaces/check-update.interfaces.js.map +1 -0
  12. package/server/applications/admin/services/admin-scheduler.service.js +53 -0
  13. package/server/applications/admin/services/admin-scheduler.service.js.map +1 -0
  14. package/server/applications/admin/services/admin.service.js +102 -0
  15. package/server/applications/admin/services/admin.service.js.map +1 -0
  16. package/server/applications/admin/services/admin.service.spec.js +46 -0
  17. package/server/applications/admin/services/admin.service.spec.js.map +1 -0
  18. package/server/applications/admin/utils/check-update.js +28 -0
  19. package/server/applications/admin/utils/check-update.js.map +1 -0
  20. package/server/applications/comments/services/comments-manager.service.js +1 -1
  21. package/server/applications/comments/services/comments-manager.service.js.map +1 -1
  22. package/server/applications/comments/services/comments-manager.service.spec.js +1 -1
  23. package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -1
  24. package/server/applications/comments/services/comments-queries.service.js.map +1 -1
  25. package/server/applications/files/constants/cache.js +10 -1
  26. package/server/applications/files/constants/cache.js.map +1 -1
  27. package/server/applications/files/constants/only-office.js +0 -25
  28. package/server/applications/files/constants/only-office.js.map +1 -1
  29. package/server/applications/files/constants/operations.js +20 -3
  30. package/server/applications/files/constants/operations.js.map +1 -1
  31. package/server/applications/files/dto/file-operations.dto.js +7 -0
  32. package/server/applications/files/dto/file-operations.dto.js.map +1 -1
  33. package/server/applications/files/files-only-office.controller.js +3 -2
  34. package/server/applications/files/files-only-office.controller.js.map +1 -1
  35. package/server/applications/files/files-only-office.controller.spec.js +6 -5
  36. package/server/applications/files/files-only-office.controller.spec.js.map +1 -1
  37. package/server/applications/files/files.controller.js +88 -8
  38. package/server/applications/files/files.controller.js.map +1 -1
  39. package/server/applications/files/files.controller.spec.js +11 -4
  40. package/server/applications/files/files.controller.spec.js.map +1 -1
  41. package/server/applications/files/guards/files-only-office.guard.js +6 -0
  42. package/server/applications/files/guards/files-only-office.guard.js.map +1 -1
  43. package/server/applications/files/interfaces/file-db-props.interface.js.map +1 -1
  44. package/server/applications/files/interfaces/file-props.interface.js.map +1 -1
  45. package/server/applications/files/interfaces/only-office-config.interface.js.map +1 -1
  46. package/server/applications/files/services/files-content-manager.service.js +3 -3
  47. package/server/applications/files/services/files-content-manager.service.js.map +1 -1
  48. package/server/applications/files/services/files-lock-manager.service.js +61 -22
  49. package/server/applications/files/services/files-lock-manager.service.js.map +1 -1
  50. package/server/applications/files/services/files-manager.service.js +122 -24
  51. package/server/applications/files/services/files-manager.service.js.map +1 -1
  52. package/server/applications/files/services/files-manager.service.spec.js +15 -0
  53. package/server/applications/files/services/files-manager.service.spec.js.map +1 -1
  54. package/server/applications/files/services/files-methods.service.js +38 -8
  55. package/server/applications/files/services/files-methods.service.js.map +1 -1
  56. package/server/applications/files/services/files-only-office-manager.service.js +12 -12
  57. package/server/applications/files/services/files-only-office-manager.service.js.map +1 -1
  58. package/server/applications/files/services/files-parser.service.js +1 -1
  59. package/server/applications/files/services/files-parser.service.js.map +1 -1
  60. package/server/applications/files/services/files-queries.service.js +10 -0
  61. package/server/applications/files/services/files-queries.service.js.map +1 -1
  62. package/server/applications/files/utils/files.js +1 -1
  63. package/server/applications/files/utils/files.js.map +1 -1
  64. package/server/applications/files/utils/send-file.js +3 -2
  65. package/server/applications/files/utils/send-file.js.map +1 -1
  66. package/server/applications/links/services/links-queries.service.js +1 -1
  67. package/server/applications/links/services/links-queries.service.js.map +1 -1
  68. package/server/applications/notifications/constants/notifications.js +5 -1
  69. package/server/applications/notifications/constants/notifications.js.map +1 -1
  70. package/server/applications/notifications/i18n/de.js +8 -2
  71. package/server/applications/notifications/i18n/de.js.map +1 -1
  72. package/server/applications/notifications/i18n/es.js +8 -2
  73. package/server/applications/notifications/i18n/es.js.map +1 -1
  74. package/server/applications/notifications/i18n/fr.js +8 -2
  75. package/server/applications/notifications/i18n/fr.js.map +1 -1
  76. package/server/applications/notifications/i18n/hi.js +8 -2
  77. package/server/applications/notifications/i18n/hi.js.map +1 -1
  78. package/server/applications/notifications/i18n/it.js +8 -2
  79. package/server/applications/notifications/i18n/it.js.map +1 -1
  80. package/server/applications/notifications/i18n/ja.js +8 -2
  81. package/server/applications/notifications/i18n/ja.js.map +1 -1
  82. package/server/applications/notifications/i18n/ko.js +8 -2
  83. package/server/applications/notifications/i18n/ko.js.map +1 -1
  84. package/server/applications/notifications/i18n/pl.js +8 -2
  85. package/server/applications/notifications/i18n/pl.js.map +1 -1
  86. package/server/applications/notifications/i18n/pt.js +8 -2
  87. package/server/applications/notifications/i18n/pt.js.map +1 -1
  88. package/server/applications/notifications/i18n/pt_br.js +8 -2
  89. package/server/applications/notifications/i18n/pt_br.js.map +1 -1
  90. package/server/applications/notifications/i18n/ru.js +8 -2
  91. package/server/applications/notifications/i18n/ru.js.map +1 -1
  92. package/server/applications/notifications/i18n/tr.js +8 -2
  93. package/server/applications/notifications/i18n/tr.js.map +1 -1
  94. package/server/applications/notifications/i18n/zh.js +8 -2
  95. package/server/applications/notifications/i18n/zh.js.map +1 -1
  96. package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -1
  97. package/server/applications/notifications/interfaces/user-mail-notification.interface.js +10 -0
  98. package/server/applications/notifications/interfaces/user-mail-notification.interface.js.map +1 -0
  99. package/server/applications/notifications/mails/models.js +38 -3
  100. package/server/applications/notifications/mails/models.js.map +1 -1
  101. package/server/applications/notifications/mails/templates.js +1 -1
  102. package/server/applications/notifications/mails/templates.js.map +1 -1
  103. package/server/applications/notifications/services/notifications-manager.service.js +8 -1
  104. package/server/applications/notifications/services/notifications-manager.service.js.map +1 -1
  105. package/server/applications/notifications/services/notifications-queries.service.js.map +1 -1
  106. package/server/applications/shares/services/shares-manager.service.js +17 -10
  107. package/server/applications/shares/services/shares-manager.service.js.map +1 -1
  108. package/server/applications/shares/services/shares-manager.service.spec.js +10 -3
  109. package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -1
  110. package/server/applications/shares/services/shares-queries.service.js +11 -1
  111. package/server/applications/shares/services/shares-queries.service.js.map +1 -1
  112. package/server/applications/spaces/guards/space.guard.spec.js +2 -2
  113. package/server/applications/spaces/guards/space.guard.spec.js.map +1 -1
  114. package/server/applications/spaces/services/spaces-browser.service.js +31 -11
  115. package/server/applications/spaces/services/spaces-browser.service.js.map +1 -1
  116. package/server/applications/spaces/services/spaces-manager.service.js +2 -2
  117. package/server/applications/spaces/services/spaces-manager.service.js.map +1 -1
  118. package/server/applications/spaces/services/spaces-queries.service.js +6 -2
  119. package/server/applications/spaces/services/spaces-queries.service.js.map +1 -1
  120. package/server/applications/spaces/utils/permissions.js +2 -2
  121. package/server/applications/spaces/utils/permissions.js.map +1 -1
  122. package/server/applications/sync/services/sync-manager.service.js +1 -0
  123. package/server/applications/sync/services/sync-manager.service.js.map +1 -1
  124. package/server/applications/sync/services/sync-paths-manager.service.js +1 -1
  125. package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -1
  126. package/server/applications/sync/services/sync-paths-manager.service.spec.js +1 -1
  127. package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -1
  128. package/server/applications/users/constants/user.js +1 -1
  129. package/server/applications/users/constants/user.js.map +1 -1
  130. package/server/applications/users/services/admin-users-queries.service.js +8 -0
  131. package/server/applications/users/services/admin-users-queries.service.js.map +1 -1
  132. package/server/applications/users/services/users-queries.service.js +67 -68
  133. package/server/applications/users/services/users-queries.service.js.map +1 -1
  134. package/server/applications/users/users.module.js +2 -1
  135. package/server/applications/users/users.module.js.map +1 -1
  136. package/server/applications/webdav/guards/webdav-protocol.guard.js +4 -4
  137. package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -1
  138. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js +6 -6
  139. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js.map +1 -1
  140. package/server/applications/webdav/services/webdav-methods.service.js +3 -2
  141. package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
  142. package/server/applications/webdav/services/webdav-methods.service.spec.js +2 -2
  143. package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -1
  144. package/server/authentication/constants/auth-ldap.js +2 -0
  145. package/server/authentication/constants/auth-ldap.js.map +1 -1
  146. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +34 -21
  147. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +1 -1
  148. package/server/common/functions.js +0 -8
  149. package/server/common/functions.js.map +1 -1
  150. package/server/common/image.js +1 -0
  151. package/server/common/image.js.map +1 -1
  152. package/server/common/shared.js +18 -1
  153. package/server/common/shared.js.map +1 -1
  154. package/server/infrastructure/context/services/context-manager.service.js +3 -0
  155. package/server/infrastructure/context/services/context-manager.service.js.map +1 -1
  156. package/server/infrastructure/websocket/adapters/cluster.adapter.js +4 -4
  157. package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -1
  158. package/static/3rdpartylicenses.txt +1393 -44
  159. package/static/assets/favicon.svg +2 -25
  160. package/static/assets/logo-dark.svg +2 -32
  161. package/static/assets/logo.svg +2 -32
  162. package/static/assets/mimes/application-sql.svg +29 -1
  163. package/static/assets/mimes/application-x-sql.svg +29 -0
  164. package/static/assets/mimes/image-bmp.svg +12 -0
  165. package/static/assets/pdfjs/build/pdf.mjs +4869 -4454
  166. package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
  167. package/static/assets/pdfjs/build/pdf.sandbox.mjs +3 -3
  168. package/static/assets/pdfjs/build/pdf.sandbox.mjs.map +1 -1
  169. package/static/assets/pdfjs/build/pdf.worker.mjs +885 -596
  170. package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
  171. package/static/assets/pdfjs/version +1 -1
  172. package/static/assets/pdfjs/web/locale/be/viewer.ftl +40 -0
  173. package/static/assets/pdfjs/web/locale/bg/viewer.ftl +2 -0
  174. package/static/assets/pdfjs/web/locale/cs/viewer.ftl +41 -0
  175. package/static/assets/pdfjs/web/locale/cy/viewer.ftl +43 -0
  176. package/static/assets/pdfjs/web/locale/da/viewer.ftl +39 -0
  177. package/static/assets/pdfjs/web/locale/de/viewer.ftl +41 -0
  178. package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +43 -0
  179. package/static/assets/pdfjs/web/locale/el/viewer.ftl +39 -0
  180. package/static/assets/pdfjs/web/locale/en-CA/viewer.ftl +35 -0
  181. package/static/assets/pdfjs/web/locale/en-GB/viewer.ftl +41 -0
  182. package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +2 -2
  183. package/static/assets/pdfjs/web/locale/eo/viewer.ftl +39 -0
  184. package/static/assets/pdfjs/web/locale/es-AR/viewer.ftl +41 -0
  185. package/static/assets/pdfjs/web/locale/es-CL/viewer.ftl +39 -0
  186. package/static/assets/pdfjs/web/locale/es-ES/viewer.ftl +72 -0
  187. package/static/assets/pdfjs/web/locale/es-MX/viewer.ftl +120 -0
  188. package/static/assets/pdfjs/web/locale/eu/viewer.ftl +41 -0
  189. package/static/assets/pdfjs/web/locale/fi/viewer.ftl +41 -0
  190. package/static/assets/pdfjs/web/locale/fr/viewer.ftl +41 -0
  191. package/static/assets/pdfjs/web/locale/fur/viewer.ftl +77 -0
  192. package/static/assets/pdfjs/web/locale/fy-NL/viewer.ftl +41 -0
  193. package/static/assets/pdfjs/web/locale/gn/viewer.ftl +39 -0
  194. package/static/assets/pdfjs/web/locale/he/viewer.ftl +41 -0
  195. package/static/assets/pdfjs/web/locale/hsb/viewer.ftl +43 -0
  196. package/static/assets/pdfjs/web/locale/hu/viewer.ftl +41 -0
  197. package/static/assets/pdfjs/web/locale/hy-AM/viewer.ftl +1 -1
  198. package/static/assets/pdfjs/web/locale/ia/viewer.ftl +41 -0
  199. package/static/assets/pdfjs/web/locale/it/viewer.ftl +41 -0
  200. package/static/assets/pdfjs/web/locale/ja/viewer.ftl +32 -0
  201. package/static/assets/pdfjs/web/locale/ka/viewer.ftl +41 -0
  202. package/static/assets/pdfjs/web/locale/kab/viewer.ftl +73 -0
  203. package/static/assets/pdfjs/web/locale/kk/viewer.ftl +21 -0
  204. package/static/assets/pdfjs/web/locale/ko/viewer.ftl +38 -1
  205. package/static/assets/pdfjs/web/locale/nb-NO/viewer.ftl +39 -0
  206. package/static/assets/pdfjs/web/locale/nl/viewer.ftl +41 -0
  207. package/static/assets/pdfjs/web/locale/nn-NO/viewer.ftl +37 -0
  208. package/static/assets/pdfjs/web/locale/pa-IN/viewer.ftl +37 -0
  209. package/static/assets/pdfjs/web/locale/pl/viewer.ftl +39 -0
  210. package/static/assets/pdfjs/web/locale/pt-BR/viewer.ftl +39 -0
  211. package/static/assets/pdfjs/web/locale/rm/viewer.ftl +73 -0
  212. package/static/assets/pdfjs/web/locale/ro/viewer.ftl +41 -0
  213. package/static/assets/pdfjs/web/locale/ru/viewer.ftl +42 -0
  214. package/static/assets/pdfjs/web/locale/sc/viewer.ftl +6 -0
  215. package/static/assets/pdfjs/web/locale/sk/viewer.ftl +43 -0
  216. package/static/assets/pdfjs/web/locale/sl/viewer.ftl +42 -1
  217. package/static/assets/pdfjs/web/locale/sq/viewer.ftl +77 -0
  218. package/static/assets/pdfjs/web/locale/sv-SE/viewer.ftl +41 -0
  219. package/static/assets/pdfjs/web/locale/tg/viewer.ftl +39 -0
  220. package/static/assets/pdfjs/web/locale/th/viewer.ftl +35 -0
  221. package/static/assets/pdfjs/web/locale/tr/viewer.ftl +39 -0
  222. package/static/assets/pdfjs/web/locale/vi/viewer.ftl +42 -5
  223. package/static/assets/pdfjs/web/locale/zh-CN/viewer.ftl +35 -0
  224. package/static/assets/pdfjs/web/locale/zh-TW/viewer.ftl +37 -0
  225. package/static/assets/pdfjs/web/viewer.css +141 -110
  226. package/static/assets/pdfjs/web/viewer.html +7 -7
  227. package/static/assets/pdfjs/web/viewer.mjs +97 -14
  228. package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
  229. package/static/chunk-22DWHRCL.js +1 -0
  230. package/static/chunk-23UUFZSR.js +1 -0
  231. package/static/{chunk-MTVSJTIW.js → chunk-24Q7OUU2.js} +1 -1
  232. package/static/chunk-25QTY2GI.js +1 -0
  233. package/static/chunk-2E7IJZLL.js +1 -0
  234. package/static/chunk-2FC5EKS5.js +1 -0
  235. package/static/chunk-2FOWUJQF.js +1 -0
  236. package/static/chunk-2XPHUNYN.js +1 -0
  237. package/static/chunk-32L7RG2G.js +1 -0
  238. package/static/chunk-3IISSX63.js +1 -0
  239. package/static/chunk-3OHSTP3R.js +1 -0
  240. package/static/chunk-42L6C5MT.js +1 -0
  241. package/static/chunk-4AGQL5GV.js +1 -0
  242. package/static/chunk-4BPSQMI2.js +1 -0
  243. package/static/chunk-4FDRWZWT.js +1 -0
  244. package/static/chunk-4FJUCMEG.js +1 -0
  245. package/static/chunk-4GCCF6PF.js +1 -0
  246. package/static/chunk-4ORP3SBY.js +1 -0
  247. package/static/chunk-4QBOHIC3.js +1 -0
  248. package/static/chunk-4YT6K5KY.js +1 -0
  249. package/static/chunk-556I6YIW.js +1 -0
  250. package/static/chunk-5DPIGJU4.js +1 -0
  251. package/static/chunk-5HNQLBSW.js +3 -0
  252. package/static/chunk-5IL7C45D.js +1 -0
  253. package/static/chunk-5KJXGMKR.js +1 -0
  254. package/static/chunk-5SPGSHKL.js +1 -0
  255. package/static/chunk-5WCQBTXW.js +1 -0
  256. package/static/chunk-5XUIPWOH.js +1 -0
  257. package/static/chunk-62WT7PI3.js +1 -0
  258. package/static/chunk-6F6OMQ5H.js +1 -0
  259. package/static/chunk-6I5BGQHT.js +1 -0
  260. package/static/chunk-6NOS45DG.js +1 -0
  261. package/static/chunk-6OKLPRCD.js +1 -0
  262. package/static/chunk-6VEJCG43.js +1 -0
  263. package/static/chunk-77SS36Z2.js +1 -0
  264. package/static/chunk-7AXEPO3G.js +1 -0
  265. package/static/chunk-7CFSJ4BO.js +1 -0
  266. package/static/chunk-7CKHC72R.js +1 -0
  267. package/static/chunk-7DUTYOJG.js +1 -0
  268. package/static/chunk-7HKFYRPF.js +1 -0
  269. package/static/chunk-7NZJZATZ.js +1 -0
  270. package/static/chunk-AADK5D2H.js +1 -0
  271. package/static/chunk-ACUF7IKP.js +1 -0
  272. package/static/chunk-AGREZPV4.js +1 -0
  273. package/static/chunk-ATBJWFA3.js +1 -0
  274. package/static/chunk-ATXLZN2B.js +1 -0
  275. package/static/chunk-AZ5TF5Y3.js +1 -0
  276. package/static/chunk-BBHYIURC.js +1 -0
  277. package/static/chunk-BHZEPHRI.js +13 -0
  278. package/static/chunk-BQZWSZNN.js +1 -0
  279. package/static/chunk-BSB4VROD.js +2 -0
  280. package/static/chunk-BYWSTP3P.js +1 -0
  281. package/static/chunk-C3AAEQKW.js +1 -0
  282. package/static/chunk-CCGGCHGN.js +1 -0
  283. package/static/chunk-CFTKW432.js +1 -0
  284. package/static/chunk-CNOVT6KU.js +1 -0
  285. package/static/chunk-D56H3XE2.js +1 -0
  286. package/static/chunk-DFOOSIIA.js +1 -0
  287. package/static/chunk-DHFQIFOF.js +1 -0
  288. package/static/{chunk-3GMLWAFZ.js → chunk-DIC2MVRI.js} +1 -1
  289. package/static/chunk-DJDRX53V.js +2 -0
  290. package/static/chunk-DKGXUMLT.js +1 -0
  291. package/static/chunk-DRHPEERW.js +2 -0
  292. package/static/chunk-DWYP6ZGG.js +1 -0
  293. package/static/chunk-EDJAISWO.js +13 -0
  294. package/static/chunk-EIYRBM4J.js +1 -0
  295. package/static/chunk-EKEGRXCV.js +7 -0
  296. package/static/chunk-EL6QL4TP.js +1 -0
  297. package/static/chunk-ERDZ7IVF.js +1 -0
  298. package/static/chunk-EVQKKVUZ.js +1 -0
  299. package/static/chunk-F2XG7EWI.js +1 -0
  300. package/static/chunk-F672FY5I.js +1 -0
  301. package/static/chunk-F6V37MKG.js +1 -0
  302. package/static/chunk-F7TXTNZC.js +1 -0
  303. package/static/chunk-FCGTI42I.js +1 -0
  304. package/static/chunk-FQHOSSCO.js +1 -0
  305. package/static/chunk-FTSIPHMG.js +1 -0
  306. package/static/chunk-GAGHHYLF.js +1 -0
  307. package/static/{chunk-JPT5WEAT.js → chunk-GOJYWL2M.js} +1 -1
  308. package/static/chunk-H6WOTGQ5.js +1 -0
  309. package/static/{chunk-CHJ64RJM.js → chunk-H6ZXFINQ.js} +1 -1
  310. package/static/chunk-HC7F57NA.js +1 -0
  311. package/static/chunk-HHWXIK2M.js +7 -0
  312. package/static/chunk-HKRGIRKB.js +3 -0
  313. package/static/chunk-HNMGPG72.js +1 -0
  314. package/static/chunk-HS4S6BV3.js +1 -0
  315. package/static/chunk-IJ7K7ATQ.js +1 -0
  316. package/static/chunk-IOIBQGHN.js +562 -0
  317. package/static/chunk-ITVA26X2.js +2 -0
  318. package/static/chunk-J6YSFHLZ.js +1 -0
  319. package/static/chunk-JAEJ6IMV.js +1 -0
  320. package/static/chunk-JB5R6V33.js +1 -0
  321. package/static/chunk-JF6WIV6M.js +1 -0
  322. package/static/chunk-JGB4LLUT.js +1 -0
  323. package/static/chunk-JGXVTKLG.js +1 -0
  324. package/static/chunk-JMYAD7E2.js +1 -0
  325. package/static/chunk-JSE63Q5X.js +1 -0
  326. package/static/chunk-JVV3ZL6L.js +1 -0
  327. package/static/chunk-JXZCNFW7.js +1 -0
  328. package/static/chunk-KAVP6UXH.js +1 -0
  329. package/static/{chunk-3R74L4UU.js → chunk-KDEEERWZ.js} +1 -1
  330. package/static/chunk-KHRF67SG.js +1 -0
  331. package/static/chunk-KLOUBIO4.js +1 -0
  332. package/static/chunk-KMF3ZRAO.js +1 -0
  333. package/static/chunk-KNZ3AQPR.js +1 -0
  334. package/static/chunk-KT3TWCST.js +1 -0
  335. package/static/chunk-L6SYG23T.js +1 -0
  336. package/static/chunk-LJSVNPPQ.js +1 -0
  337. package/static/{chunk-LNTUR3GU.js → chunk-LRDKG274.js} +1 -1
  338. package/static/chunk-LRQSPCYZ.js +1 -0
  339. package/static/chunk-LUSVISM6.js +1 -0
  340. package/static/chunk-LXQGVNU2.js +1 -0
  341. package/static/{chunk-LVSNIS5P.js → chunk-LYZGJZNP.js} +1 -1
  342. package/static/chunk-LZKI5P5T.js +1 -0
  343. package/static/chunk-M4XL3JN5.js +6 -0
  344. package/static/{chunk-UNCPXHHT.js → chunk-MGWG7OD7.js} +1 -1
  345. package/static/chunk-MKUUWY6Y.js +1 -0
  346. package/static/{chunk-VJTXJ43D.js → chunk-MNNCSSHN.js} +1 -1
  347. package/static/chunk-MR3U7TKQ.js +1 -0
  348. package/static/chunk-MRF3CNLZ.js +1 -0
  349. package/static/chunk-MRMSMTWD.js +1 -0
  350. package/static/chunk-MVZJSG5R.js +1 -0
  351. package/static/chunk-MYM43ENO.js +1 -0
  352. package/static/chunk-N3P6P6GW.js +7 -0
  353. package/static/chunk-NAH4V2R6.js +2 -0
  354. package/static/chunk-NBBDVVUF.js +1 -0
  355. package/static/chunk-NMF2ZFBE.js +1 -0
  356. package/static/chunk-NN4ONTOT.js +1 -0
  357. package/static/chunk-NOPACN4F.js +1 -0
  358. package/static/chunk-NYJPOP4L.js +1 -0
  359. package/static/chunk-OJCAIKUK.js +1 -0
  360. package/static/chunk-OQRWXCLY.js +1 -0
  361. package/static/chunk-PCFH5HCI.js +2 -0
  362. package/static/chunk-PG54TWBO.js +4 -0
  363. package/static/chunk-PJF5XUTO.js +1 -0
  364. package/static/{chunk-FJE6BOFL.js → chunk-PSUAQBYM.js} +1 -1
  365. package/static/chunk-PTLYIUFW.js +1 -0
  366. package/static/chunk-PZGLDZZM.js +1 -0
  367. package/static/chunk-Q4VNZGFI.js +1 -0
  368. package/static/chunk-Q556XB3S.js +1 -0
  369. package/static/{chunk-PB4AIT7O.js → chunk-Q7IXRPOO.js} +1 -1
  370. package/static/chunk-Q7U2VPIS.js +1 -0
  371. package/static/chunk-QM6CQMEX.js +1 -0
  372. package/static/chunk-QMHUIHSR.js +1 -0
  373. package/static/chunk-QNFNXDSX.js +1 -0
  374. package/static/chunk-QVFPHTOH.js +1 -0
  375. package/static/chunk-R4MI25E2.js +1 -0
  376. package/static/chunk-R7JRAR3P.js +1 -0
  377. package/static/chunk-R7PNKQU2.js +1 -0
  378. package/static/chunk-RCAORRB7.js +1 -0
  379. package/static/chunk-RK7XRDNB.js +1 -0
  380. package/static/chunk-RO7SAOLK.js +1 -0
  381. package/static/chunk-RQUUINHV.js +1 -0
  382. package/static/chunk-RT3K6DZR.js +1 -0
  383. package/static/chunk-RUN556VW.js +1 -0
  384. package/static/chunk-RX3YQ67K.js +1 -0
  385. package/static/chunk-S6EVLDHA.js +5 -0
  386. package/static/chunk-S7S5M3AZ.js +1 -0
  387. package/static/chunk-SBLNYV74.js +1 -0
  388. package/static/chunk-SIZCHHUA.js +1 -0
  389. package/static/chunk-SRBOO7AO.js +1 -0
  390. package/static/{chunk-PVDHBQRM.js → chunk-STA7NTYL.js} +1 -1
  391. package/static/chunk-T3YI3BSS.js +1 -0
  392. package/static/chunk-T74SMT7I.js +1 -0
  393. package/static/chunk-TAL3RTTQ.js +1 -0
  394. package/static/chunk-TJZKTNNS.js +1 -0
  395. package/static/chunk-UJTFWZEC.js +1 -0
  396. package/static/chunk-UPGVU5LG.js +1 -0
  397. package/static/chunk-UQ6O3I6W.js +1 -0
  398. package/static/{chunk-5NMSIIQB.js → chunk-V43RGNXA.js} +1 -1
  399. package/static/chunk-VWIRXLNE.js +1 -0
  400. package/static/chunk-VZMVGIVW.js +1 -0
  401. package/static/chunk-VZPCXSRG.js +2 -0
  402. package/static/chunk-WR3MA3L3.js +1 -0
  403. package/static/chunk-XCLK7NJL.js +1 -0
  404. package/static/{chunk-DSWEWLXJ.js → chunk-XCPDPB5G.js} +1 -1
  405. package/static/chunk-XEGHEUP5.js +1 -0
  406. package/static/chunk-XKEBQNQJ.js +1 -0
  407. package/static/chunk-XOF4UW3S.js +1 -0
  408. package/static/chunk-XOTKK2NJ.js +1 -0
  409. package/static/chunk-XX7JXKA6.js +1 -0
  410. package/static/chunk-Y2I36A4K.js +1 -0
  411. package/static/chunk-Y44XDRM5.js +1 -0
  412. package/static/{chunk-QO6BTONN.js → chunk-Y4MAPE2C.js} +1 -1
  413. package/static/chunk-Y5RLD72B.js +1 -0
  414. package/static/{chunk-DPUVSXRB.js → chunk-Y5XTRCFK.js} +1 -1
  415. package/static/chunk-Y63UUJGJ.js +1 -0
  416. package/static/chunk-YBNAC7QM.js +1 -0
  417. package/static/chunk-YCTCESL4.js +1 -0
  418. package/static/chunk-YMAN4LIU.js +1 -0
  419. package/static/chunk-YTDE6SXT.js +1 -0
  420. package/static/chunk-YZPIUJB3.js +1 -0
  421. package/static/chunk-ZCOWBVOT.js +1 -0
  422. package/static/chunk-ZHRYYMYE.js +1 -0
  423. package/static/chunk-ZNXTOQFG.js +1 -0
  424. package/static/{chunk-URHTCJ7G.js → chunk-ZQLBPLXI.js} +1 -1
  425. package/static/favicon.ico +0 -0
  426. package/static/index.html +2 -2
  427. package/static/main-3PLRDZTO.js +11 -0
  428. package/static/styles-Q4OZOSSK.css +1 -0
  429. package/server/applications/notifications/interfaces/user-mail-notification.js.map +0 -1
  430. package/static/assets/codemirror/mode/apl/apl.js +0 -174
  431. package/static/assets/codemirror/mode/asciiarmor/asciiarmor.js +0 -74
  432. package/static/assets/codemirror/mode/asn.1/asn.1.js +0 -204
  433. package/static/assets/codemirror/mode/asterisk/asterisk.js +0 -220
  434. package/static/assets/codemirror/mode/brainfuck/brainfuck.js +0 -85
  435. package/static/assets/codemirror/mode/clike/clike.js +0 -942
  436. package/static/assets/codemirror/mode/clojure/clojure.js +0 -293
  437. package/static/assets/codemirror/mode/cmake/cmake.js +0 -97
  438. package/static/assets/codemirror/mode/cobol/cobol.js +0 -255
  439. package/static/assets/codemirror/mode/coffeescript/coffeescript.js +0 -359
  440. package/static/assets/codemirror/mode/commonlisp/commonlisp.js +0 -125
  441. package/static/assets/codemirror/mode/crystal/crystal.js +0 -433
  442. package/static/assets/codemirror/mode/css/css.js +0 -862
  443. package/static/assets/codemirror/mode/cypher/cypher.js +0 -152
  444. package/static/assets/codemirror/mode/d/d.js +0 -223
  445. package/static/assets/codemirror/mode/dart/dart.js +0 -168
  446. package/static/assets/codemirror/mode/diff/diff.js +0 -47
  447. package/static/assets/codemirror/mode/django/django.js +0 -356
  448. package/static/assets/codemirror/mode/dockerfile/dockerfile.js +0 -211
  449. package/static/assets/codemirror/mode/dtd/dtd.js +0 -142
  450. package/static/assets/codemirror/mode/dylan/dylan.js +0 -352
  451. package/static/assets/codemirror/mode/ebnf/ebnf.js +0 -195
  452. package/static/assets/codemirror/mode/ecl/ecl.js +0 -206
  453. package/static/assets/codemirror/mode/eiffel/eiffel.js +0 -160
  454. package/static/assets/codemirror/mode/elm/elm.js +0 -245
  455. package/static/assets/codemirror/mode/erlang/erlang.js +0 -619
  456. package/static/assets/codemirror/mode/factor/factor.js +0 -85
  457. package/static/assets/codemirror/mode/fcl/fcl.js +0 -173
  458. package/static/assets/codemirror/mode/forth/forth.js +0 -180
  459. package/static/assets/codemirror/mode/fortran/fortran.js +0 -188
  460. package/static/assets/codemirror/mode/gas/gas.js +0 -355
  461. package/static/assets/codemirror/mode/gfm/gfm.js +0 -129
  462. package/static/assets/codemirror/mode/gherkin/gherkin.js +0 -194
  463. package/static/assets/codemirror/mode/go/go.js +0 -187
  464. package/static/assets/codemirror/mode/groovy/groovy.js +0 -245
  465. package/static/assets/codemirror/mode/haml/haml.js +0 -161
  466. package/static/assets/codemirror/mode/handlebars/handlebars.js +0 -70
  467. package/static/assets/codemirror/mode/haskell/haskell.js +0 -268
  468. package/static/assets/codemirror/mode/haskell-literate/haskell-literate.js +0 -43
  469. package/static/assets/codemirror/mode/haxe/haxe.js +0 -515
  470. package/static/assets/codemirror/mode/htmlembedded/htmlembedded.js +0 -37
  471. package/static/assets/codemirror/mode/htmlmixed/htmlmixed.js +0 -153
  472. package/static/assets/codemirror/mode/http/http.js +0 -113
  473. package/static/assets/codemirror/mode/idl/idl.js +0 -290
  474. package/static/assets/codemirror/mode/javascript/javascript.js +0 -960
  475. package/static/assets/codemirror/mode/jinja2/jinja2.js +0 -193
  476. package/static/assets/codemirror/mode/jsx/jsx.js +0 -149
  477. package/static/assets/codemirror/mode/julia/julia.js +0 -390
  478. package/static/assets/codemirror/mode/livescript/livescript.js +0 -280
  479. package/static/assets/codemirror/mode/lua/lua.js +0 -160
  480. package/static/assets/codemirror/mode/markdown/markdown.js +0 -886
  481. package/static/assets/codemirror/mode/mathematica/mathematica.js +0 -176
  482. package/static/assets/codemirror/mode/mbox/mbox.js +0 -129
  483. package/static/assets/codemirror/mode/meta.js +0 -221
  484. package/static/assets/codemirror/mode/mirc/mirc.js +0 -193
  485. package/static/assets/codemirror/mode/mllike/mllike.js +0 -359
  486. package/static/assets/codemirror/mode/modelica/modelica.js +0 -245
  487. package/static/assets/codemirror/mode/mscgen/mscgen.js +0 -175
  488. package/static/assets/codemirror/mode/mumps/mumps.js +0 -148
  489. package/static/assets/codemirror/mode/nginx/nginx.js +0 -178
  490. package/static/assets/codemirror/mode/nsis/nsis.js +0 -95
  491. package/static/assets/codemirror/mode/ntriples/ntriples.js +0 -195
  492. package/static/assets/codemirror/mode/octave/octave.js +0 -139
  493. package/static/assets/codemirror/mode/oz/oz.js +0 -252
  494. package/static/assets/codemirror/mode/pascal/pascal.js +0 -136
  495. package/static/assets/codemirror/mode/pegjs/pegjs.js +0 -111
  496. package/static/assets/codemirror/mode/perl/perl.js +0 -836
  497. package/static/assets/codemirror/mode/php/php.js +0 -234
  498. package/static/assets/codemirror/mode/pig/pig.js +0 -178
  499. package/static/assets/codemirror/mode/powershell/powershell.js +0 -398
  500. package/static/assets/codemirror/mode/properties/properties.js +0 -78
  501. package/static/assets/codemirror/mode/protobuf/protobuf.js +0 -72
  502. package/static/assets/codemirror/mode/pug/pug.js +0 -591
  503. package/static/assets/codemirror/mode/puppet/puppet.js +0 -220
  504. package/static/assets/codemirror/mode/python/python.js +0 -402
  505. package/static/assets/codemirror/mode/q/q.js +0 -139
  506. package/static/assets/codemirror/mode/r/r.js +0 -190
  507. package/static/assets/codemirror/mode/rpm/changes/index.html +0 -66
  508. package/static/assets/codemirror/mode/rpm/rpm.js +0 -109
  509. package/static/assets/codemirror/mode/rst/rst.js +0 -557
  510. package/static/assets/codemirror/mode/ruby/ruby.js +0 -303
  511. package/static/assets/codemirror/mode/rust/rust.js +0 -72
  512. package/static/assets/codemirror/mode/sas/sas.js +0 -303
  513. package/static/assets/codemirror/mode/sass/sass.js +0 -459
  514. package/static/assets/codemirror/mode/scheme/scheme.js +0 -284
  515. package/static/assets/codemirror/mode/shell/shell.js +0 -168
  516. package/static/assets/codemirror/mode/sieve/sieve.js +0 -193
  517. package/static/assets/codemirror/mode/slim/slim.js +0 -575
  518. package/static/assets/codemirror/mode/smalltalk/smalltalk.js +0 -168
  519. package/static/assets/codemirror/mode/smarty/smarty.js +0 -225
  520. package/static/assets/codemirror/mode/solr/solr.js +0 -104
  521. package/static/assets/codemirror/mode/soy/soy.js +0 -665
  522. package/static/assets/codemirror/mode/sparql/sparql.js +0 -184
  523. package/static/assets/codemirror/mode/spreadsheet/spreadsheet.js +0 -112
  524. package/static/assets/codemirror/mode/sql/sql.js +0 -529
  525. package/static/assets/codemirror/mode/stex/stex.js +0 -264
  526. package/static/assets/codemirror/mode/stylus/stylus.js +0 -775
  527. package/static/assets/codemirror/mode/swift/swift.js +0 -221
  528. package/static/assets/codemirror/mode/tcl/tcl.js +0 -140
  529. package/static/assets/codemirror/mode/textile/textile.js +0 -469
  530. package/static/assets/codemirror/mode/tiddlywiki/tiddlywiki.css +0 -14
  531. package/static/assets/codemirror/mode/tiddlywiki/tiddlywiki.js +0 -308
  532. package/static/assets/codemirror/mode/tiki/tiki.css +0 -26
  533. package/static/assets/codemirror/mode/tiki/tiki.js +0 -312
  534. package/static/assets/codemirror/mode/toml/toml.js +0 -88
  535. package/static/assets/codemirror/mode/tornado/tornado.js +0 -68
  536. package/static/assets/codemirror/mode/troff/troff.js +0 -84
  537. package/static/assets/codemirror/mode/ttcn/ttcn.js +0 -283
  538. package/static/assets/codemirror/mode/ttcn-cfg/ttcn-cfg.js +0 -214
  539. package/static/assets/codemirror/mode/turtle/turtle.js +0 -162
  540. package/static/assets/codemirror/mode/twig/twig.js +0 -141
  541. package/static/assets/codemirror/mode/vb/vb.js +0 -275
  542. package/static/assets/codemirror/mode/vbscript/vbscript.js +0 -350
  543. package/static/assets/codemirror/mode/velocity/velocity.js +0 -202
  544. package/static/assets/codemirror/mode/verilog/verilog.js +0 -781
  545. package/static/assets/codemirror/mode/vhdl/vhdl.js +0 -189
  546. package/static/assets/codemirror/mode/vue/vue.js +0 -77
  547. package/static/assets/codemirror/mode/wast/wast.js +0 -132
  548. package/static/assets/codemirror/mode/webidl/webidl.js +0 -195
  549. package/static/assets/codemirror/mode/xml/xml.js +0 -417
  550. package/static/assets/codemirror/mode/xquery/xquery.js +0 -448
  551. package/static/assets/codemirror/mode/yacas/yacas.js +0 -204
  552. package/static/assets/codemirror/mode/yaml/yaml.js +0 -120
  553. package/static/assets/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +0 -72
  554. package/static/assets/codemirror/mode/z80/z80.js +0 -116
  555. package/static/chunk-2KLC4T2Z.js +0 -1
  556. package/static/chunk-2VMSXRCB.js +0 -12
  557. package/static/chunk-3OHSRRKH.js +0 -4
  558. package/static/chunk-3R4WKOHQ.js +0 -1
  559. package/static/chunk-3XVM35O2.js +0 -1
  560. package/static/chunk-3YVRP3VM.js +0 -2
  561. package/static/chunk-5UKZLU5H.js +0 -1
  562. package/static/chunk-AF24EYXU.js +0 -1
  563. package/static/chunk-AKQVEHO6.js +0 -2
  564. package/static/chunk-BCVX464U.js +0 -2
  565. package/static/chunk-BQV4FRM6.js +0 -1
  566. package/static/chunk-CETH7UYS.js +0 -1
  567. package/static/chunk-DIT6W7VM.js +0 -562
  568. package/static/chunk-DKSEQTMX.js +0 -1
  569. package/static/chunk-FZ3JPGYZ.js +0 -1
  570. package/static/chunk-IQSKQXC3.js +0 -1
  571. package/static/chunk-ITUFI2BJ.js +0 -1
  572. package/static/chunk-LCTZJ537.js +0 -1
  573. package/static/chunk-LK2UCQJ6.js +0 -1
  574. package/static/chunk-LP5TBXEN.js +0 -7
  575. package/static/chunk-N3U6637P.js +0 -1
  576. package/static/chunk-NNV4OXSB.js +0 -1
  577. package/static/chunk-O6FYXVHI.js +0 -1
  578. package/static/chunk-OOGP4WSH.js +0 -2
  579. package/static/chunk-PCWDQPOM.js +0 -2
  580. package/static/chunk-PNR6M34W.js +0 -1
  581. package/static/chunk-Q5KM7LTX.js +0 -1
  582. package/static/chunk-QHC6ZPQ4.js +0 -1
  583. package/static/chunk-QMRBZHE4.js +0 -1
  584. package/static/chunk-QSJRY3TF.js +0 -1
  585. package/static/chunk-QUUIRSYT.js +0 -1
  586. package/static/chunk-RFH46UW3.js +0 -1
  587. package/static/chunk-RSXHRKM5.js +0 -1
  588. package/static/chunk-RV3VZJPZ.js +0 -1
  589. package/static/chunk-S7HNXVRB.js +0 -1
  590. package/static/chunk-SBZ572Q4.js +0 -2
  591. package/static/chunk-SJR5R3Y4.js +0 -1
  592. package/static/chunk-SLHTEGRU.js +0 -1
  593. package/static/chunk-SSFF27P2.js +0 -24
  594. package/static/chunk-V3LHHZYN.js +0 -1
  595. package/static/chunk-VQQKMY2C.js +0 -1
  596. package/static/chunk-WSSU2HXE.js +0 -1
  597. package/static/chunk-XDZGW64M.js +0 -3
  598. package/static/chunk-XTRDKGKG.js +0 -1
  599. package/static/chunk-YLWTEC3X.js +0 -1
  600. package/static/chunk-Z5J5F5SX.js +0 -1
  601. package/static/main-4H5BJY3J.js +0 -9
  602. package/static/scripts-WRDOQIU5.js +0 -24
  603. package/static/styles-2C2UNCNB.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/links/services/links-queries.service.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { Inject, Injectable } from '@nestjs/common'\nimport { and, eq, getTableColumns, isNotNull, isNull, or, sql } from 'drizzle-orm'\nimport { alias } from 'drizzle-orm/mysql-core'\nimport { Cache } from '../../../infrastructure/cache/services/cache.service'\nimport { DB_TOKEN_PROVIDER } from '../../../infrastructure/database/constants'\nimport type { DBSchema } from '../../../infrastructure/database/interfaces/database.interface'\nimport { dbGetInsertedId } from '../../../infrastructure/database/utils'\nimport { files } from '../../files/schemas/files.schema'\nimport type { ShareMembers } from '../../shares/schemas/share-members.interface'\nimport type { Share } from '../../shares/schemas/share.interface'\nimport { sharesMembers } from '../../shares/schemas/shares-members.schema'\nimport { shares } from '../../shares/schemas/shares.schema'\nimport { SPACE_ROLE } from '../../spaces/constants/spaces'\nimport type { SpaceMembers } from '../../spaces/schemas/space-members.interface'\nimport { spacesMembers } from '../../spaces/schemas/spaces-members.schema'\nimport { spacesRoots } from '../../spaces/schemas/spaces-roots.schema'\nimport { spaces } from '../../spaces/schemas/spaces.schema'\nimport { USER_ROLE } from '../../users/constants/user'\nimport type { User } from '../../users/schemas/user.interface'\nimport { userFullNameSQL, users } from '../../users/schemas/users.schema'\nimport { CACHE_LINK_UUID_PREFIX, CACHE_LINK_UUID_TTL } from '../constants/cache'\nimport { LINK_TYPE } from '../constants/links'\nimport type { LinkAsUser, LinkGuest } from '../interfaces/link-guest.interface'\nimport type { SpaceLink } from '../interfaces/link-space.interface'\nimport type { Link } from '../schemas/link.interface'\nimport { links } from '../schemas/links.schema'\n\n@Injectable()\nexport class LinksQueries {\n constructor(\n @Inject(DB_TOKEN_PROVIDER) private readonly db: DBSchema,\n private readonly cache: Cache\n ) {}\n\n async linkFromShare(ownerId: number, linkId: number, shareId: number, isAdmin: number = 0): Promise<LinkGuest> {\n const [r] = await this.db\n .select({\n ...getTableColumns(links),\n permissions: sharesMembers.permissions,\n language: users.language,\n isActive: users.isActive\n })\n .from(links)\n .innerJoin(shares, and(eq(shares.id, shareId), or(eq(shares.ownerId, ownerId), and(eq(sql`${isAdmin}`, 1), isNull(shares.ownerId)))))\n .innerJoin(sharesMembers, and(eq(sharesMembers.shareId, shares.id), eq(sharesMembers.userId, links.userId), eq(sharesMembers.linkId, linkId)))\n .innerJoin(users, eq(users.id, links.userId))\n .where(eq(links.id, linkId))\n .limit(1)\n return r as LinkGuest\n }\n\n async linkFromSpace(managerId: number, linkId: number, spaceId: number): Promise<LinkGuest> {\n const linkMember: any = alias(spacesMembers, 'linkMember')\n const [r] = await this.db\n .select({\n ...getTableColumns(links),\n permissions: linkMember.permissions,\n language: users.language,\n isActive: users.isActive\n })\n .from(links)\n .innerJoin(\n spacesMembers,\n and(eq(spacesMembers.spaceId, spaceId), eq(spacesMembers.userId, managerId), eq(spacesMembers.role, SPACE_ROLE.IS_MANAGER))\n )\n .innerJoin(linkMember, and(eq(linkMember.spaceId, spacesMembers.spaceId), eq(linkMember.userId, links.userId), eq(linkMember.linkId, linkId)))\n .innerJoin(users, eq(users.id, links.userId))\n .where(eq(links.id, linkId))\n .limit(1)\n return r as LinkGuest\n }\n\n async updateLinkFromSpaceOrShare(\n link: LinkGuest,\n shareId: number,\n diffUser: Partial<User>,\n diffLink: Partial<Link>,\n diffShare: Partial<Share>,\n diffMember: Partial<ShareMembers>\n ) {\n if (Object.keys(diffUser).length) {\n await this.db.update(users).set(diffUser).where(eq(users.id, link.userId))\n }\n if (Object.keys(diffLink).length) {\n await this.db.update(links).set(diffLink).where(eq(links.id, link.id))\n }\n if (Object.keys(diffShare).length) {\n await this.db.update(shares).set(diffShare).where(eq(shares.id, shareId))\n }\n if (Object.keys(diffMember).length) {\n await this.db\n .update(sharesMembers)\n .set(diffMember)\n .where(and(eq(sharesMembers.shareId, shareId), eq(sharesMembers.userId, link.userId), eq(sharesMembers.linkId, link.id)))\n }\n }\n\n async createLinkToSpaceOrShare(guestId: number, spaceOrShareId: number, type: LINK_TYPE, link: Partial<LinkGuest>): Promise<number> {\n const linkId = dbGetInsertedId(await this.db.insert(links).values(link as Link))\n if (type === LINK_TYPE.SPACE) {\n await this.db.insert(spacesMembers).values({\n userId: guestId,\n spaceId: spaceOrShareId,\n permissions: link.permissions,\n role: SPACE_ROLE.IS_MEMBER,\n linkId: linkId\n } as SpaceMembers)\n } else {\n await this.db.insert(sharesMembers).values({\n userId: guestId,\n shareId: spaceOrShareId,\n linkId: linkId,\n permissions: link.permissions\n } as ShareMembers)\n }\n return linkId\n }\n\n allLinksFromSpaceOrShare(spaceOrShareId: number, type: LINK_TYPE): Promise<{ id: number; linkId: number }[]> {\n const members: any = alias(type == 'share' ? sharesMembers : spacesMembers, 'members')\n return this.db\n .select({ id: users.id, linkId: members.linkId })\n .from(members)\n .innerJoin(users, and(eq(users.id, members.userId), eq(users.role, USER_ROLE.LINK)))\n .where(and(eq(type == 'share' ? members.shareId : members.spaceId, spaceOrShareId), isNotNull(members.linkId)))\n }\n\n async linkFromUUID(uuid: string): Promise<LinkAsUser> {\n const { password, ...userColumns } = getTableColumns(users)\n const [r] = await this.db\n .select({\n ...getTableColumns(links),\n user: { ...userColumns }\n })\n .from(links)\n .leftJoin(users, eq(users.id, links.userId))\n .where(eq(links.uuid, uuid))\n .limit(1)\n return r\n }\n\n async spaceLink(uuid: string): Promise<SpaceLink> {\n const shareOwner: any = alias(users, 'shareOwner')\n const shareSpaceRoot: any = alias(spacesRoots, 'shareSpaceRoot')\n const [r]: SpaceLink[] = await this.db\n .select({\n share: {\n name: shares.name,\n alias: shares.alias,\n hasParent: isNotNull(shares.parentId).mapWith(Boolean),\n isDir: sql`IF (${isNotNull(shares.externalPath)}, 1 ,${files.isDir})`.mapWith(Boolean),\n mime: files.mime\n },\n space: { name: spaces.name, alias: spaces.alias },\n owner: { login: shareOwner.login, fullName: userFullNameSQL(shareOwner) }\n })\n .from(links)\n .leftJoin(sharesMembers, eq(sharesMembers.linkId, links.id))\n .leftJoin(shares, eq(shares.id, sharesMembers.shareId))\n .leftJoin(shareOwner, eq(shareOwner.id, shares.ownerId))\n .leftJoin(spacesMembers, eq(spacesMembers.linkId, links.id))\n .leftJoin(spaces, eq(spaces.id, spacesMembers.spaceId))\n .leftJoin(shareSpaceRoot, and(isNull(shares.externalPath), isNull(shares.fileId), eq(shareSpaceRoot.id, shares.spaceRootId)))\n .leftJoin(\n files,\n or(\n and(isNotNull(shares.fileId), eq(files.id, shares.fileId)),\n and(isNull(shares.externalPath), isNotNull(shareSpaceRoot.fileId), eq(files.id, shareSpaceRoot.fileId))\n )\n )\n .where(eq(links.uuid, uuid))\n .limit(1)\n return r\n }\n\n async incrementLinkNbAccess(uuid: string) {\n await this.db\n .update(links)\n .set({ nbAccess: sql`${links.nbAccess} + 1` } as Record<keyof Link, any>)\n .where(eq(links.uuid, uuid))\n .limit(1)\n }\n\n async isUniqueUUID(userId: number, uuid: string) {\n const [r] = await this.db.select({ check: links.uuid }).from(links).where(eq(links.uuid, uuid)).limit(1)\n if (!r) {\n // uuid does not exist in db\n const cacheKey = this.cache.genSlugKey(CACHE_LINK_UUID_PREFIX, userId, uuid)\n // check if uuid was already requested\n if (!(await this.cache.has(cacheKey))) {\n // store uuid to prevent reuse\n await this.cache.set(cacheKey, uuid, CACHE_LINK_UUID_TTL)\n return true\n }\n return false\n }\n return false\n }\n\n isReservedUUID(userId: number, uuid: string): Promise<boolean> {\n // check if uuid is reserved\n return this.cache.has(this.cache.genSlugKey(CACHE_LINK_UUID_PREFIX, userId, uuid))\n }\n}\n"],"names":["LinksQueries","linkFromShare","ownerId","linkId","shareId","isAdmin","r","db","select","getTableColumns","links","permissions","sharesMembers","language","users","isActive","from","innerJoin","shares","and","eq","id","or","sql","isNull","userId","where","limit","linkFromSpace","managerId","spaceId","linkMember","alias","spacesMembers","role","SPACE_ROLE","IS_MANAGER","updateLinkFromSpaceOrShare","link","diffUser","diffLink","diffShare","diffMember","Object","keys","length","update","set","createLinkToSpaceOrShare","guestId","spaceOrShareId","type","dbGetInsertedId","insert","values","LINK_TYPE","SPACE","IS_MEMBER","allLinksFromSpaceOrShare","members","USER_ROLE","LINK","isNotNull","linkFromUUID","uuid","password","userColumns","user","leftJoin","spaceLink","shareOwner","shareSpaceRoot","spacesRoots","share","name","hasParent","parentId","mapWith","Boolean","isDir","externalPath","files","mime","space","spaces","owner","login","fullName","userFullNameSQL","fileId","spaceRootId","incrementLinkNbAccess","nbAccess","isUniqueUUID","check","cacheKey","cache","genSlugKey","CACHE_LINK_UUID_PREFIX","has","CACHE_LINK_UUID_TTL","isReservedUUID"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/links/services/links-queries.service.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { Inject, Injectable } from '@nestjs/common'\nimport { and, eq, getTableColumns, isNotNull, isNull, or, sql } from 'drizzle-orm'\nimport { alias } from 'drizzle-orm/mysql-core'\nimport { Cache } from '../../../infrastructure/cache/services/cache.service'\nimport { DB_TOKEN_PROVIDER } from '../../../infrastructure/database/constants'\nimport type { DBSchema } from '../../../infrastructure/database/interfaces/database.interface'\nimport { dbGetInsertedId } from '../../../infrastructure/database/utils'\nimport { files } from '../../files/schemas/files.schema'\nimport type { ShareMembers } from '../../shares/schemas/share-members.interface'\nimport type { Share } from '../../shares/schemas/share.interface'\nimport { sharesMembers } from '../../shares/schemas/shares-members.schema'\nimport { shares } from '../../shares/schemas/shares.schema'\nimport { SPACE_ROLE } from '../../spaces/constants/spaces'\nimport type { SpaceMembers } from '../../spaces/schemas/space-members.interface'\nimport { spacesMembers } from '../../spaces/schemas/spaces-members.schema'\nimport { spacesRoots } from '../../spaces/schemas/spaces-roots.schema'\nimport { spaces } from '../../spaces/schemas/spaces.schema'\nimport { USER_ROLE } from '../../users/constants/user'\nimport type { User } from '../../users/schemas/user.interface'\nimport { userFullNameSQL, users } from '../../users/schemas/users.schema'\nimport { CACHE_LINK_UUID_PREFIX, CACHE_LINK_UUID_TTL } from '../constants/cache'\nimport { LINK_TYPE } from '../constants/links'\nimport type { LinkAsUser, LinkGuest } from '../interfaces/link-guest.interface'\nimport type { SpaceLink } from '../interfaces/link-space.interface'\nimport type { Link } from '../schemas/link.interface'\nimport { links } from '../schemas/links.schema'\n\n@Injectable()\nexport class LinksQueries {\n constructor(\n @Inject(DB_TOKEN_PROVIDER) private readonly db: DBSchema,\n private readonly cache: Cache\n ) {}\n\n async linkFromShare(ownerId: number, linkId: number, shareId: number, isAdmin: number = 0): Promise<LinkGuest> {\n const [r] = await this.db\n .select({\n ...getTableColumns(links),\n permissions: sharesMembers.permissions,\n language: users.language,\n isActive: users.isActive\n })\n .from(links)\n .innerJoin(shares, and(eq(shares.id, shareId), or(eq(shares.ownerId, ownerId), and(eq(sql`${isAdmin}`, 1), isNull(shares.ownerId)))))\n .innerJoin(sharesMembers, and(eq(sharesMembers.shareId, shares.id), eq(sharesMembers.userId, links.userId), eq(sharesMembers.linkId, linkId)))\n .innerJoin(users, eq(users.id, links.userId))\n .where(eq(links.id, linkId))\n .limit(1)\n return r as LinkGuest\n }\n\n async linkFromSpace(managerId: number, linkId: number, spaceId: number): Promise<LinkGuest> {\n const linkMember: any = alias(spacesMembers, 'linkMember')\n const [r] = await this.db\n .select({\n ...getTableColumns(links),\n permissions: linkMember.permissions,\n language: users.language,\n isActive: users.isActive\n })\n .from(links)\n .innerJoin(\n spacesMembers,\n and(eq(spacesMembers.spaceId, spaceId), eq(spacesMembers.userId, managerId), eq(spacesMembers.role, SPACE_ROLE.IS_MANAGER))\n )\n .innerJoin(linkMember, and(eq(linkMember.spaceId, spacesMembers.spaceId), eq(linkMember.userId, links.userId), eq(linkMember.linkId, linkId)))\n .innerJoin(users, eq(users.id, links.userId))\n .where(eq(links.id, linkId))\n .limit(1)\n return r as LinkGuest\n }\n\n async updateLinkFromSpaceOrShare(\n link: LinkGuest,\n shareId: number,\n diffUser: Partial<User>,\n diffLink: Partial<Link>,\n diffShare: Partial<Share>,\n diffMember: Partial<ShareMembers>\n ) {\n if (Object.keys(diffUser).length) {\n await this.db.update(users).set(diffUser).where(eq(users.id, link.userId))\n }\n if (Object.keys(diffLink).length) {\n await this.db.update(links).set(diffLink).where(eq(links.id, link.id))\n }\n if (Object.keys(diffShare).length) {\n await this.db.update(shares).set(diffShare).where(eq(shares.id, shareId))\n }\n if (Object.keys(diffMember).length) {\n await this.db\n .update(sharesMembers)\n .set(diffMember)\n .where(and(eq(sharesMembers.shareId, shareId), eq(sharesMembers.userId, link.userId), eq(sharesMembers.linkId, link.id)))\n }\n }\n\n async createLinkToSpaceOrShare(guestId: number, spaceOrShareId: number, type: LINK_TYPE, link: Partial<LinkGuest>): Promise<number> {\n const linkId = dbGetInsertedId(await this.db.insert(links).values(link as Link))\n if (type === LINK_TYPE.SPACE) {\n await this.db.insert(spacesMembers).values({\n userId: guestId,\n spaceId: spaceOrShareId,\n permissions: link.permissions,\n role: SPACE_ROLE.IS_MEMBER,\n linkId: linkId\n } as SpaceMembers)\n } else {\n await this.db.insert(sharesMembers).values({\n userId: guestId,\n shareId: spaceOrShareId,\n linkId: linkId,\n permissions: link.permissions\n } as ShareMembers)\n }\n return linkId\n }\n\n allLinksFromSpaceOrShare(spaceOrShareId: number, type: LINK_TYPE): Promise<{ id: number; linkId: number }[]> {\n const members: any = alias(type == 'share' ? sharesMembers : spacesMembers, 'members')\n return this.db\n .select({ id: users.id, linkId: members.linkId })\n .from(members)\n .innerJoin(users, and(eq(users.id, members.userId), eq(users.role, USER_ROLE.LINK)))\n .where(and(eq(type == 'share' ? members.shareId : members.spaceId, spaceOrShareId), isNotNull(members.linkId)))\n }\n\n async linkFromUUID(uuid: string): Promise<LinkAsUser> {\n const { password, ...userColumns } = getTableColumns(users)\n const [r] = await this.db\n .select({\n ...getTableColumns(links),\n user: { ...userColumns }\n })\n .from(links)\n .leftJoin(users, eq(users.id, links.userId))\n .where(eq(links.uuid, uuid))\n .limit(1)\n return r\n }\n\n async spaceLink(uuid: string): Promise<SpaceLink> {\n const shareOwner: any = alias(users, 'shareOwner')\n const shareSpaceRoot: any = alias(spacesRoots, 'shareSpaceRoot')\n const [r]: SpaceLink[] = await this.db\n .select({\n share: {\n name: shares.name,\n alias: shares.alias,\n hasParent: isNotNull(shares.parentId).mapWith(Boolean),\n isDir: sql`IF (${isNotNull(shares.externalPath)} OR ${isNotNull(shareSpaceRoot.externalPath)}, 1 ,${files.isDir})`.mapWith(Boolean),\n mime: files.mime\n },\n space: { name: spaces.name, alias: spaces.alias },\n owner: { login: shareOwner.login, fullName: userFullNameSQL(shareOwner) }\n })\n .from(links)\n .leftJoin(sharesMembers, eq(sharesMembers.linkId, links.id))\n .leftJoin(shares, eq(shares.id, sharesMembers.shareId))\n .leftJoin(shareOwner, eq(shareOwner.id, shares.ownerId))\n .leftJoin(spacesMembers, eq(spacesMembers.linkId, links.id))\n .leftJoin(spaces, eq(spaces.id, spacesMembers.spaceId))\n .leftJoin(shareSpaceRoot, and(isNull(shares.externalPath), isNull(shares.fileId), eq(shareSpaceRoot.id, shares.spaceRootId)))\n .leftJoin(\n files,\n or(\n and(isNotNull(shares.fileId), eq(files.id, shares.fileId)),\n and(isNull(shares.externalPath), isNotNull(shareSpaceRoot.fileId), eq(files.id, shareSpaceRoot.fileId))\n )\n )\n .where(eq(links.uuid, uuid))\n .limit(1)\n return r\n }\n\n async incrementLinkNbAccess(uuid: string) {\n await this.db\n .update(links)\n .set({ nbAccess: sql`${links.nbAccess} + 1` } as Record<keyof Link, any>)\n .where(eq(links.uuid, uuid))\n .limit(1)\n }\n\n async isUniqueUUID(userId: number, uuid: string) {\n const [r] = await this.db.select({ check: links.uuid }).from(links).where(eq(links.uuid, uuid)).limit(1)\n if (!r) {\n // uuid does not exist in db\n const cacheKey = this.cache.genSlugKey(CACHE_LINK_UUID_PREFIX, userId, uuid)\n // check if uuid was already requested\n if (!(await this.cache.has(cacheKey))) {\n // store uuid to prevent reuse\n await this.cache.set(cacheKey, uuid, CACHE_LINK_UUID_TTL)\n return true\n }\n return false\n }\n return false\n }\n\n isReservedUUID(userId: number, uuid: string): Promise<boolean> {\n // check if uuid is reserved\n return this.cache.has(this.cache.genSlugKey(CACHE_LINK_UUID_PREFIX, userId, uuid))\n }\n}\n"],"names":["LinksQueries","linkFromShare","ownerId","linkId","shareId","isAdmin","r","db","select","getTableColumns","links","permissions","sharesMembers","language","users","isActive","from","innerJoin","shares","and","eq","id","or","sql","isNull","userId","where","limit","linkFromSpace","managerId","spaceId","linkMember","alias","spacesMembers","role","SPACE_ROLE","IS_MANAGER","updateLinkFromSpaceOrShare","link","diffUser","diffLink","diffShare","diffMember","Object","keys","length","update","set","createLinkToSpaceOrShare","guestId","spaceOrShareId","type","dbGetInsertedId","insert","values","LINK_TYPE","SPACE","IS_MEMBER","allLinksFromSpaceOrShare","members","USER_ROLE","LINK","isNotNull","linkFromUUID","uuid","password","userColumns","user","leftJoin","spaceLink","shareOwner","shareSpaceRoot","spacesRoots","share","name","hasParent","parentId","mapWith","Boolean","isDir","externalPath","files","mime","space","spaces","owner","login","fullName","userFullNameSQL","fileId","spaceRootId","incrementLinkNbAccess","nbAccess","isUniqueUUID","check","cacheKey","cache","genSlugKey","CACHE_LINK_UUID_PREFIX","has","CACHE_LINK_UUID_TTL","isReservedUUID"],"mappings":"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"}
@@ -30,6 +30,8 @@ var NOTIFICATION_APP = /*#__PURE__*/ function(NOTIFICATION_APP) {
30
30
  NOTIFICATION_APP["SYNC"] = "sync";
31
31
  NOTIFICATION_APP["AUTH_LOCKED"] = "auth_locked";
32
32
  NOTIFICATION_APP["AUTH_2FA"] = "auth_2fa";
33
+ NOTIFICATION_APP["UNLOCK_REQUEST"] = "unlock_request";
34
+ NOTIFICATION_APP["UPDATE_AVAILABLE"] = "server_update_available";
33
35
  return NOTIFICATION_APP;
34
36
  }({});
35
37
  const NOTIFICATION_APP_EVENT = {
@@ -65,7 +67,9 @@ const NOTIFICATION_APP_EVENT = {
65
67
  },
66
68
  AUTH_LOCKED: {
67
69
  [_constants.ACTION.DELETE]: 'Your account has been locked after several unsuccessful authentication attempts'
68
- }
70
+ },
71
+ UNLOCK_REQUEST: 'sends you a request to unlock the file',
72
+ UPDATE_AVAILABLE: 'A new update is available'
69
73
  };
70
74
 
71
75
  //# sourceMappingURL=notifications.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/notifications/constants/notifications.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { ACTION } from '../../../common/constants'\n\nexport enum NOTIFICATION_APP {\n COMMENTS = 'comments',\n SPACES = 'spaces',\n SPACE_ROOTS = 'spaces_roots',\n SHARES = 'shares',\n LINKS = 'links',\n SYNC = 'sync',\n AUTH_LOCKED = 'auth_locked',\n AUTH_2FA = 'auth_2fa'\n}\n\nexport const NOTIFICATION_APP_EVENT = {\n COMMENTS: 'commented',\n SPACES: {\n [ACTION.ADD]: 'You now have access to the space',\n [ACTION.DELETE]: 'You no longer have access to the space',\n [ACTION.DELETE_PERMANENTLY]: 'This space has been permanently deleted'\n },\n SPACE_ROOTS: {\n [ACTION.ADD]: 'anchored',\n [ACTION.DELETE]: 'unanchored'\n },\n SHARES: {\n [ACTION.ADD]: 'shared with you',\n [ACTION.DELETE]: 'no longer share with you'\n },\n SHARES_WITHOUT_OWNER: {\n [ACTION.ADD]: 'You now have access to the share',\n [ACTION.DELETE]: 'You no longer have access to the share',\n [ACTION.DELETE_PERMANENTLY]: 'You are no longer a member of the parent share, your child share has been deleted'\n },\n LINKS: {\n [ACTION.ADD]: 'shared with you',\n [ACTION.UPDATE]: 'You now have access to the space'\n },\n SYNC: {\n [ACTION.DELETE]: 'You are no longer synchronizing'\n },\n AUTH_2FA: {\n [ACTION.ADD]: 'Two-factor authentication (2FA) on your account has been enabled',\n [ACTION.DELETE]: 'Two-factor authentication (2FA) on your account has been disabled'\n },\n AUTH_LOCKED: {\n [ACTION.DELETE]: 'Your account has been locked after several unsuccessful authentication attempts'\n }\n}\n"],"names":["NOTIFICATION_APP","NOTIFICATION_APP_EVENT","COMMENTS","SPACES","ACTION","ADD","DELETE","DELETE_PERMANENTLY","SPACE_ROOTS","SHARES","SHARES_WITHOUT_OWNER","LINKS","UPDATE","SYNC","AUTH_2FA","AUTH_LOCKED"],"mappings":"AAAA;;;;CAIC;;;;;;;;;;;QAIWA;eAAAA;;QAWCC;eAAAA;;;2BAbU;AAEhB,IAAA,AAAKD,0CAAAA;;;;;;;;;WAAAA;;AAWL,MAAMC,yBAAyB;IACpCC,UAAU;IACVC,QAAQ;QACN,CAACC,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;QACjB,CAACF,iBAAM,CAACG,kBAAkB,CAAC,EAAE;IAC/B;IACAC,aAAa;QACX,CAACJ,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAG,QAAQ;QACN,CAACL,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAI,sBAAsB;QACpB,CAACN,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;QACjB,CAACF,iBAAM,CAACG,kBAAkB,CAAC,EAAE;IAC/B;IACAI,OAAO;QACL,CAACP,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACQ,MAAM,CAAC,EAAE;IACnB;IACAC,MAAM;QACJ,CAACT,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAQ,UAAU;QACR,CAACV,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAS,aAAa;QACX,CAACX,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;AACF"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/notifications/constants/notifications.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { ACTION } from '../../../common/constants'\n\nexport enum NOTIFICATION_APP {\n COMMENTS = 'comments',\n SPACES = 'spaces',\n SPACE_ROOTS = 'spaces_roots',\n SHARES = 'shares',\n LINKS = 'links',\n SYNC = 'sync',\n AUTH_LOCKED = 'auth_locked',\n AUTH_2FA = 'auth_2fa',\n UNLOCK_REQUEST = 'unlock_request',\n UPDATE_AVAILABLE = 'server_update_available'\n}\n\nexport const NOTIFICATION_APP_EVENT = {\n COMMENTS: 'commented',\n SPACES: {\n [ACTION.ADD]: 'You now have access to the space',\n [ACTION.DELETE]: 'You no longer have access to the space',\n [ACTION.DELETE_PERMANENTLY]: 'This space has been permanently deleted'\n },\n SPACE_ROOTS: {\n [ACTION.ADD]: 'anchored',\n [ACTION.DELETE]: 'unanchored'\n },\n SHARES: {\n [ACTION.ADD]: 'shared with you',\n [ACTION.DELETE]: 'no longer share with you'\n },\n SHARES_WITHOUT_OWNER: {\n [ACTION.ADD]: 'You now have access to the share',\n [ACTION.DELETE]: 'You no longer have access to the share',\n [ACTION.DELETE_PERMANENTLY]: 'You are no longer a member of the parent share, your child share has been deleted'\n },\n LINKS: {\n [ACTION.ADD]: 'shared with you',\n [ACTION.UPDATE]: 'You now have access to the space'\n },\n SYNC: {\n [ACTION.DELETE]: 'You are no longer synchronizing'\n },\n AUTH_2FA: {\n [ACTION.ADD]: 'Two-factor authentication (2FA) on your account has been enabled',\n [ACTION.DELETE]: 'Two-factor authentication (2FA) on your account has been disabled'\n },\n AUTH_LOCKED: {\n [ACTION.DELETE]: 'Your account has been locked after several unsuccessful authentication attempts'\n },\n UNLOCK_REQUEST: 'sends you a request to unlock the file',\n UPDATE_AVAILABLE: 'A new update is available'\n}\n"],"names":["NOTIFICATION_APP","NOTIFICATION_APP_EVENT","COMMENTS","SPACES","ACTION","ADD","DELETE","DELETE_PERMANENTLY","SPACE_ROOTS","SHARES","SHARES_WITHOUT_OWNER","LINKS","UPDATE","SYNC","AUTH_2FA","AUTH_LOCKED","UNLOCK_REQUEST","UPDATE_AVAILABLE"],"mappings":"AAAA;;;;CAIC;;;;;;;;;;;QAIWA;eAAAA;;QAaCC;eAAAA;;;2BAfU;AAEhB,IAAA,AAAKD,0CAAAA;;;;;;;;;;;WAAAA;;AAaL,MAAMC,yBAAyB;IACpCC,UAAU;IACVC,QAAQ;QACN,CAACC,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;QACjB,CAACF,iBAAM,CAACG,kBAAkB,CAAC,EAAE;IAC/B;IACAC,aAAa;QACX,CAACJ,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAG,QAAQ;QACN,CAACL,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAI,sBAAsB;QACpB,CAACN,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;QACjB,CAACF,iBAAM,CAACG,kBAAkB,CAAC,EAAE;IAC/B;IACAI,OAAO;QACL,CAACP,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACQ,MAAM,CAAC,EAAE;IACnB;IACAC,MAAM;QACJ,CAACT,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAQ,UAAU;QACR,CAACV,iBAAM,CAACC,GAAG,CAAC,EAAE;QACd,CAACD,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAS,aAAa;QACX,CAACX,iBAAM,CAACE,MAAM,CAAC,EAAE;IACnB;IACAU,gBAAgB;IAChBC,kBAAkB;AACpB"}
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "de", {
17
17
  }
18
18
  });
19
19
  const de = {
20
- 'If you no longer wish to receive notifications, change your preferences directly from your user space': 'Wenn Sie keine Benachrichtigungen mehr erhalten möchten, ändern Sie Ihre Einstellungen direkt in Ihrem Benutzerbereich',
20
+ 'If you no longer wish to receive notifications, change your preferences directly from your user space.': 'Wenn Sie keine Benachrichtigungen mehr erhalten möchten, ändern Sie Ihre Einstellungen direkt in Ihrem Benutzerbereich.',
21
21
  'Access it from': 'Öffnen Sie es über',
22
22
  Comment: 'Kommentar',
23
23
  commented: 'hat kommentiert',
@@ -43,6 +43,9 @@ const de = {
43
43
  Sync: 'Synchronisierung',
44
44
  'Access your syncs from': 'Öffnen Sie Ihre Synchronisierungen über',
45
45
  'You are no longer synchronizing': 'Sie synchronisieren nicht mehr',
46
+ 'Unlock Request': 'Entsperranfrage',
47
+ 'You receive this notification because you have a lock on this file.': 'Sie erhalten diese Benachrichtigung, weil Sie eine Sperre auf dieser Datei haben.',
48
+ 'sends you a request to unlock the file': 'sendet Ihnen eine Anfrage zum Entsperren der Datei',
46
49
  'Security notification': 'Sicherheitsbenachrichtigung',
47
50
  'Your account has been locked after several unsuccessful authentication attempts': 'Ihr Konto wurde nach mehreren fehlgeschlagenen Anmeldeversuchen gesperrt',
48
51
  'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': 'Diese Sicherheitsbenachrichtigung betrifft Ihr Sync-in-Konto. Bitte wenden Sie sich an einen Administrator, damit er die Analyse durchführt und Ihr Konto entsperrt.',
@@ -50,7 +53,10 @@ const de = {
50
53
  'Two-factor authentication (2FA) on your account has been enabled': 'Die Zwei-Faktor-Authentifizierung (2FA) für Ihr Konto wurde aktiviert',
51
54
  'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': 'Sie erhalten diese Benachrichtigung, weil sich die Sicherheit Ihres Sync-in-Kontos geändert hat. Wenn Sie der Meinung sind, dass dies ein Fehler war, überprüfen Sie bitte Ihre Sicherheitseinstellungen oder kontaktieren Sie Ihren Administrator.',
52
55
  'Address IP': 'IP-Adresse',
53
- Browser: 'Browser'
56
+ Browser: 'Browser',
57
+ 'New Version Available': 'Neue Version verfügbar',
58
+ 'You receive this notification because you are the administrator of this server.': 'Sie erhalten diese Benachrichtigung, weil Sie der Administrator dieses Servers sind.',
59
+ 'A new update is available': 'Ein neues Update ist verfügbar'
54
60
  };
55
61
 
56
62
  //# sourceMappingURL=de.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/de.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const de = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space':\n 'Wenn Sie keine Benachrichtigungen mehr erhalten möchten, ändern Sie Ihre Einstellungen direkt in Ihrem Benutzerbereich',\n 'Access it from': 'Öffnen Sie es über',\n Comment: 'Kommentar',\n commented: 'hat kommentiert',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'Sie erhalten diese Benachrichtigung, wenn Sie der Eigentümer der Datei sind oder wenn Sie diese Datei ebenfalls kommentiert haben',\n Space: 'Bereich',\n 'from the space': 'aus dem Bereich',\n 'to the space': 'zum Bereich',\n 'Access your spaces from': 'Öffnen Sie Ihre Bereiche über',\n 'Access this space from': 'Öffnen Sie diesen Bereich über',\n 'You now have access to the space': 'Sie haben jetzt Zugriff auf den Bereich',\n 'You no longer have access to the space': 'Sie haben keinen Zugriff mehr auf den Bereich',\n 'This space has been permanently deleted': 'Dieser Bereich wurde dauerhaft gelöscht',\n anchored: 'hat angeheftet',\n unanchored: 'hat gelöst',\n Share: 'Freigabe',\n 'shared with you': 'hat mit Ihnen geteilt',\n 'no longer share with you': 'teilt nicht mehr mit Ihnen',\n 'You now have access to the share': 'Sie haben jetzt Zugriff auf die Freigabe',\n 'You no longer have access to the share': 'Sie haben keinen Zugriff mehr auf die Freigabe',\n 'You are no longer a member of the parent share, your child share has been deleted':\n 'Sie sind kein Mitglied der übergeordneten Freigabe mehr, Ihre untergeordnete Freigabe wurde gelöscht',\n 'Access your shares from': 'Öffnen Sie Ihre Freigaben über',\n 'Access password': 'Zugriffspasswort',\n Sync: 'Synchronisierung',\n 'Access your syncs from': 'Öffnen Sie Ihre Synchronisierungen über',\n 'You are no longer synchronizing': 'Sie synchronisieren nicht mehr',\n 'Security notification': 'Sicherheitsbenachrichtigung',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'Ihr Konto wurde nach mehreren fehlgeschlagenen Anmeldeversuchen gesperrt',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n 'Diese Sicherheitsbenachrichtigung betrifft Ihr Sync-in-Konto. Bitte wenden Sie sich an einen Administrator, damit er die Analyse durchführt und Ihr Konto entsperrt.',\n 'Two-factor authentication (2FA) on your account has been disabled': 'Die Zwei-Faktor-Authentifizierung (2FA) für Ihr Konto wurde deaktiviert',\n 'Two-factor authentication (2FA) on your account has been enabled': 'Die Zwei-Faktor-Authentifizierung (2FA) für Ihr Konto wurde aktiviert',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'Sie erhalten diese Benachrichtigung, weil sich die Sicherheit Ihres Sync-in-Kontos geändert hat. Wenn Sie der Meinung sind, dass dies ein Fehler war, überprüfen Sie bitte Ihre Sicherheitseinstellungen oder kontaktieren Sie Ihren Administrator.',\n 'Address IP': 'IP-Adresse',\n Browser: 'Browser'\n} as const\n"],"names":["de","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC,GACD;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,yGACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,yBAAyB;IACzB,mFACE;IACF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;AACX"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/de.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const de = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space.':\n 'Wenn Sie keine Benachrichtigungen mehr erhalten möchten, ändern Sie Ihre Einstellungen direkt in Ihrem Benutzerbereich.',\n 'Access it from': 'Öffnen Sie es über',\n Comment: 'Kommentar',\n commented: 'hat kommentiert',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'Sie erhalten diese Benachrichtigung, wenn Sie der Eigentümer der Datei sind oder wenn Sie diese Datei ebenfalls kommentiert haben',\n Space: 'Bereich',\n 'from the space': 'aus dem Bereich',\n 'to the space': 'zum Bereich',\n 'Access your spaces from': 'Öffnen Sie Ihre Bereiche über',\n 'Access this space from': 'Öffnen Sie diesen Bereich über',\n 'You now have access to the space': 'Sie haben jetzt Zugriff auf den Bereich',\n 'You no longer have access to the space': 'Sie haben keinen Zugriff mehr auf den Bereich',\n 'This space has been permanently deleted': 'Dieser Bereich wurde dauerhaft gelöscht',\n anchored: 'hat angeheftet',\n unanchored: 'hat gelöst',\n Share: 'Freigabe',\n 'shared with you': 'hat mit Ihnen geteilt',\n 'no longer share with you': 'teilt nicht mehr mit Ihnen',\n 'You now have access to the share': 'Sie haben jetzt Zugriff auf die Freigabe',\n 'You no longer have access to the share': 'Sie haben keinen Zugriff mehr auf die Freigabe',\n 'You are no longer a member of the parent share, your child share has been deleted':\n 'Sie sind kein Mitglied der übergeordneten Freigabe mehr, Ihre untergeordnete Freigabe wurde gelöscht',\n 'Access your shares from': 'Öffnen Sie Ihre Freigaben über',\n 'Access password': 'Zugriffspasswort',\n Sync: 'Synchronisierung',\n 'Access your syncs from': 'Öffnen Sie Ihre Synchronisierungen über',\n 'You are no longer synchronizing': 'Sie synchronisieren nicht mehr',\n 'Unlock Request': 'Entsperranfrage',\n 'You receive this notification because you have a lock on this file.':\n 'Sie erhalten diese Benachrichtigung, weil Sie eine Sperre auf dieser Datei haben.',\n 'sends you a request to unlock the file': 'sendet Ihnen eine Anfrage zum Entsperren der Datei',\n 'Security notification': 'Sicherheitsbenachrichtigung',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'Ihr Konto wurde nach mehreren fehlgeschlagenen Anmeldeversuchen gesperrt',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n 'Diese Sicherheitsbenachrichtigung betrifft Ihr Sync-in-Konto. Bitte wenden Sie sich an einen Administrator, damit er die Analyse durchführt und Ihr Konto entsperrt.',\n 'Two-factor authentication (2FA) on your account has been disabled': 'Die Zwei-Faktor-Authentifizierung (2FA) für Ihr Konto wurde deaktiviert',\n 'Two-factor authentication (2FA) on your account has been enabled': 'Die Zwei-Faktor-Authentifizierung (2FA) für Ihr Konto wurde aktiviert',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'Sie erhalten diese Benachrichtigung, weil sich die Sicherheit Ihres Sync-in-Kontos geändert hat. Wenn Sie der Meinung sind, dass dies ein Fehler war, überprüfen Sie bitte Ihre Sicherheitseinstellungen oder kontaktieren Sie Ihren Administrator.',\n 'Address IP': 'IP-Adresse',\n Browser: 'Browser',\n 'New Version Available': 'Neue Version verfügbar',\n 'You receive this notification because you are the administrator of this server.':\n 'Sie erhalten diese Benachrichtigung, weil Sie der Administrator dieses Servers sind.',\n 'A new update is available': 'Ein neues Update ist verfügbar'\n} as const\n"],"names":["de","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC,GACD;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,0GACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,kBAAkB;IAClB,uEACE;IACF,0CAA0C;IAC1C,yBAAyB;IACzB,mFACE;IACF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;IACT,yBAAyB;IACzB,mFACE;IACF,6BAA6B;AAC/B"}
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "es", {
13
13
  }
14
14
  });
15
15
  const es = {
16
- 'If you no longer wish to receive notifications, change your preferences directly from your user space': 'Si ya no desea recibir notificaciones, cambie sus preferencias directamente desde su espacio de usuario',
16
+ 'If you no longer wish to receive notifications, change your preferences directly from your user space.': 'Si ya no desea recibir notificaciones, cambie sus preferencias directamente desde su espacio de usuario.',
17
17
  'Access it from': 'Acceda a él desde',
18
18
  Comment: 'Comentario',
19
19
  commented: 'comentó',
@@ -39,6 +39,9 @@ const es = {
39
39
  Sync: 'Sincronización',
40
40
  'Access your syncs from': 'Acceda a sus sincronizaciones desde',
41
41
  'You are no longer synchronizing': 'Ya no está sincronizando',
42
+ 'Unlock Request': 'Solicitud de desbloqueo',
43
+ 'You receive this notification because you have a lock on this file.': 'Recibe esta notificación porque tiene un bloqueo en este archivo.',
44
+ 'sends you a request to unlock the file': 'le envía una solicitud para desbloquear el archivo',
42
45
  'Security notification': 'Notificación de seguridad',
43
46
  'Your account has been locked after several unsuccessful authentication attempts': 'Su cuenta ha sido bloqueada tras varios intentos de autenticación fallidos',
44
47
  'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': 'Esta notificación de seguridad concierne a su cuenta de Sync-in. Póngase en contacto con un administrador para realizar el análisis y desbloquear su cuenta.',
@@ -46,7 +49,10 @@ const es = {
46
49
  'Two-factor authentication (2FA) on your account has been enabled': 'La autenticación de dos factores (2FA) de su cuenta ha sido activada',
47
50
  'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': 'Ha recibido esta notificación porque la seguridad de su cuenta de Sync-in ha cambiado. Si cree que se trata de un error, revise su configuración de seguridad o contacte a su administrador.',
48
51
  'Address IP': 'Dirección IP',
49
- Browser: 'Navegador'
52
+ Browser: 'Navegador',
53
+ 'New Version Available': 'Nueva versión disponible',
54
+ 'You receive this notification because you are the administrator of this server.': 'Recibe esta notificación porque es el administrador de este servidor.',
55
+ 'A new update is available': 'Hay una nueva actualización disponible'
50
56
  };
51
57
 
52
58
  //# sourceMappingURL=es.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/es.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const es = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space':\n 'Si ya no desea recibir notificaciones, cambie sus preferencias directamente desde su espacio de usuario',\n 'Access it from': 'Acceda a él desde',\n Comment: 'Comentario',\n commented: 'comentó',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'Recibe esta notificación si es el propietario del archivo o si también ha comentado este archivo',\n Space: 'Espacio',\n 'from the space': 'del espacio',\n 'to the space': 'al espacio',\n 'Access your spaces from': 'Acceda a sus espacios desde',\n 'Access this space from': 'Acceda a este espacio desde',\n 'You now have access to the space': 'Ahora tiene acceso al espacio',\n 'You no longer have access to the space': 'Ya no tiene acceso al espacio',\n 'This space has been permanently deleted': 'Este espacio ha sido eliminado permanentemente',\n anchored: 'ancló',\n unanchored: 'desancló',\n Share: 'Compartir',\n 'shared with you': 'compartió con usted',\n 'no longer share with you': 'ya no comparte con usted',\n 'You now have access to the share': 'Ahora tiene acceso al recurso compartido',\n 'You no longer have access to the share': 'Ya no tiene acceso al recurso compartido',\n 'You are no longer a member of the parent share, your child share has been deleted':\n 'Ya no es miembro del recurso compartido principal; su recurso compartido hijo ha sido eliminado',\n 'Access your shares from': 'Acceda a sus recursos compartidos desde',\n 'Access password': 'Contraseña de acceso',\n Sync: 'Sincronización',\n 'Access your syncs from': 'Acceda a sus sincronizaciones desde',\n 'You are no longer synchronizing': 'Ya no está sincronizando',\n 'Security notification': 'Notificación de seguridad',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'Su cuenta ha sido bloqueada tras varios intentos de autenticación fallidos',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n 'Esta notificación de seguridad concierne a su cuenta de Sync-in. Póngase en contacto con un administrador para realizar el análisis y desbloquear su cuenta.',\n 'Two-factor authentication (2FA) on your account has been disabled': 'La autenticación de dos factores (2FA) de su cuenta ha sido desactivada',\n 'Two-factor authentication (2FA) on your account has been enabled': 'La autenticación de dos factores (2FA) de su cuenta ha sido activada',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'Ha recibido esta notificación porque la seguridad de su cuenta de Sync-in ha cambiado. Si cree que se trata de un error, revise su configuración de seguridad o contacte a su administrador.',\n 'Address IP': 'Dirección IP',\n Browser: 'Navegador'\n} as const\n"],"names":["es","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,yGACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,yBAAyB;IACzB,mFACE;IACF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;AACX"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/es.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const es = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space.':\n 'Si ya no desea recibir notificaciones, cambie sus preferencias directamente desde su espacio de usuario.',\n 'Access it from': 'Acceda a él desde',\n Comment: 'Comentario',\n commented: 'comentó',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'Recibe esta notificación si es el propietario del archivo o si también ha comentado este archivo',\n Space: 'Espacio',\n 'from the space': 'del espacio',\n 'to the space': 'al espacio',\n 'Access your spaces from': 'Acceda a sus espacios desde',\n 'Access this space from': 'Acceda a este espacio desde',\n 'You now have access to the space': 'Ahora tiene acceso al espacio',\n 'You no longer have access to the space': 'Ya no tiene acceso al espacio',\n 'This space has been permanently deleted': 'Este espacio ha sido eliminado permanentemente',\n anchored: 'ancló',\n unanchored: 'desancló',\n Share: 'Compartir',\n 'shared with you': 'compartió con usted',\n 'no longer share with you': 'ya no comparte con usted',\n 'You now have access to the share': 'Ahora tiene acceso al recurso compartido',\n 'You no longer have access to the share': 'Ya no tiene acceso al recurso compartido',\n 'You are no longer a member of the parent share, your child share has been deleted':\n 'Ya no es miembro del recurso compartido principal; su recurso compartido hijo ha sido eliminado',\n 'Access your shares from': 'Acceda a sus recursos compartidos desde',\n 'Access password': 'Contraseña de acceso',\n Sync: 'Sincronización',\n 'Access your syncs from': 'Acceda a sus sincronizaciones desde',\n 'You are no longer synchronizing': 'Ya no está sincronizando',\n 'Unlock Request': 'Solicitud de desbloqueo',\n 'You receive this notification because you have a lock on this file.': 'Recibe esta notificación porque tiene un bloqueo en este archivo.',\n 'sends you a request to unlock the file': 'le envía una solicitud para desbloquear el archivo',\n 'Security notification': 'Notificación de seguridad',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'Su cuenta ha sido bloqueada tras varios intentos de autenticación fallidos',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n 'Esta notificación de seguridad concierne a su cuenta de Sync-in. Póngase en contacto con un administrador para realizar el análisis y desbloquear su cuenta.',\n 'Two-factor authentication (2FA) on your account has been disabled': 'La autenticación de dos factores (2FA) de su cuenta ha sido desactivada',\n 'Two-factor authentication (2FA) on your account has been enabled': 'La autenticación de dos factores (2FA) de su cuenta ha sido activada',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'Ha recibido esta notificación porque la seguridad de su cuenta de Sync-in ha cambiado. Si cree que se trata de un error, revise su configuración de seguridad o contacte a su administrador.',\n 'Address IP': 'Dirección IP',\n Browser: 'Navegador',\n 'New Version Available': 'Nueva versión disponible',\n 'You receive this notification because you are the administrator of this server.':\n 'Recibe esta notificación porque es el administrador de este servidor.',\n 'A new update is available': 'Hay una nueva actualización disponible'\n} as const\n"],"names":["es","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,0GACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,kBAAkB;IAClB,uEAAuE;IACvE,0CAA0C;IAC1C,yBAAyB;IACzB,mFACE;IACF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;IACT,yBAAyB;IACzB,mFACE;IACF,6BAA6B;AAC/B"}
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "fr", {
13
13
  }
14
14
  });
15
15
  const fr = {
16
- 'If you no longer wish to receive notifications, change your preferences directly from your user space': 'Si vous ne souhaitez plus recevoir de notifications, modifiez vos préferences directement depuis votre espace utilisateur',
16
+ 'If you no longer wish to receive notifications, change your preferences directly from your user space.': 'Si vous ne souhaitez plus recevoir de notifications, modifiez vos préferences directement depuis votre espace utilisateur.',
17
17
  'Access it from': 'Accédez y depuis',
18
18
  Comment: 'Commentaire',
19
19
  commented: 'a commenté',
@@ -39,6 +39,9 @@ const fr = {
39
39
  Sync: 'Synchronisation',
40
40
  'Access your syncs from': 'Accédez à vos synchronisations depuis',
41
41
  'You are no longer synchronizing': 'Vous ne synchronisez plus',
42
+ 'Unlock Request': 'Demande de déverrouillage',
43
+ 'You receive this notification because you have a lock on this file.': 'Vous recevez cette notification car vous avez un verrou sur ce fichier.',
44
+ 'sends you a request to unlock the file': 'vous envoie une demande de déverrouillage du fichier',
42
45
  'Security notification': 'Notification de sécurité',
43
46
  'Your account has been locked after several unsuccessful authentication attempts': 'Votre compte a été verrouillé après plusieurs tentatives d’authentification infructueuses',
44
47
  'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': `Cette notification de sécurité concerne votre compte Sync-in. Merci de contacter un administrateur afin qu’il procède à l’analyse et au déverrouillage de votre compte.`,
@@ -46,7 +49,10 @@ const fr = {
46
49
  'Two-factor authentication (2FA) on your account has been enabled': `L’authentification à deux facteurs (2FA) sur votre compte a été activée`,
47
50
  'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': `Vous recevez cette notification car la sécurité de votre compte Sync-in a été modifiée. Si vous pensez qu’il s’agit d’une erreur, vérifiez vos paramètres de sécurité ou contactez votre administrateur.`,
48
51
  'Address IP': 'Adresse IP',
49
- Browser: 'Navigateur'
52
+ Browser: 'Navigateur',
53
+ 'New Version Available': 'Nouvelle version disponible',
54
+ 'You receive this notification because you are the administrator of this server.': 'Vous recevez cette notification car vous êtes l’administrateur de ce serveur.',
55
+ 'A new update is available': 'Une nouvelle mise à jour est disponible'
50
56
  };
51
57
 
52
58
  //# sourceMappingURL=fr.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/fr.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const fr = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space':\n 'Si vous ne souhaitez plus recevoir de notifications, modifiez vos préferences directement depuis votre espace utilisateur',\n 'Access it from': 'Accédez y depuis',\n Comment: 'Commentaire',\n commented: 'a commenté',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'Vous recevez cette notification si vous êtes le propriétaire du fichier ou si vous avez également commenté ce fichier',\n Space: 'Espace',\n 'from the space': `de l'espace`,\n 'to the space': `à l'espace`,\n 'Access your spaces from': 'Accédez à vos espaces depuis',\n 'Access this space from': 'Accédez à cet espace depuis',\n 'You now have access to the space': `Vous avez désormais accès à l'espace`,\n 'You no longer have access to the space': `Vous n'avez plus accès à l'espace`,\n 'This space has been permanently deleted': 'Cet espace a été définitivement supprimé',\n anchored: `a ancré`,\n unanchored: `a désancré`,\n Share: 'Partage',\n 'shared with you': 'a partagé avec vous',\n 'no longer share with you': 'ne partage plus avec vous',\n 'You now have access to the share': `Vous avez désormais accès au partage`,\n 'You no longer have access to the share': `Vous n'avez plus accès au partage`,\n 'You are no longer a member of the parent share, your child share has been deleted': `Vous n'êtes plus membre du partage parent, votre partage enfant a été supprimé`,\n 'Access your shares from': 'Accédez à vos partages depuis',\n 'Access password': `Mot de passe d'accès`,\n Sync: 'Synchronisation',\n 'Access your syncs from': 'Accédez à vos synchronisations depuis',\n 'You are no longer synchronizing': 'Vous ne synchronisez plus',\n 'Security notification': 'Notification de sécurité',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'Votre compte a été verrouillé après plusieurs tentatives d’authentification infructueuses',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': `Cette notification de sécurité concerne votre compte Sync-in. Merci de contacter un administrateur afin qu’il procède à l’analyse et au déverrouillage de votre compte.`,\n 'Two-factor authentication (2FA) on your account has been disabled': `L’authentification à deux facteurs (2FA) sur votre compte a été désactivée`,\n 'Two-factor authentication (2FA) on your account has been enabled': `L’authentification à deux facteurs (2FA) sur votre compte a été activée`,\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': `Vous recevez cette notification car la sécurité de votre compte Sync-in a été modifiée. Si vous pensez qu’il s’agit d’une erreur, vérifiez vos paramètres de sécurité ou contactez votre administrateur.`,\n 'Address IP': 'Adresse IP',\n Browser: 'Navigateur'\n} as const\n"],"names":["fr","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,yGACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB,CAAC,WAAW,CAAC;IAC/B,gBAAgB,CAAC,UAAU,CAAC;IAC5B,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC,CAAC,oCAAoC,CAAC;IAC1E,0CAA0C,CAAC,iCAAiC,CAAC;IAC7E,2CAA2C;IAC3CC,UAAU,CAAC,OAAO,CAAC;IACnBC,YAAY,CAAC,UAAU,CAAC;IACxBC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC,CAAC,oCAAoC,CAAC;IAC1E,0CAA0C,CAAC,iCAAiC,CAAC;IAC7E,qFAAqF,CAAC,8EAA8E,CAAC;IACrK,2BAA2B;IAC3B,mBAAmB,CAAC,oBAAoB,CAAC;IACzCC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,yBAAyB;IACzB,mFACE;IACF,8IAA8I,CAAC,uKAAuK,CAAC;IACvT,qEAAqE,CAAC,0EAA0E,CAAC;IACjJ,oEAAoE,CAAC,uEAAuE,CAAC;IAC7I,iMAAiM,CAAC,wMAAwM,CAAC;IAC3Y,cAAc;IACdC,SAAS;AACX"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/fr.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const fr = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space.':\n 'Si vous ne souhaitez plus recevoir de notifications, modifiez vos préferences directement depuis votre espace utilisateur.',\n 'Access it from': 'Accédez y depuis',\n Comment: 'Commentaire',\n commented: 'a commenté',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'Vous recevez cette notification si vous êtes le propriétaire du fichier ou si vous avez également commenté ce fichier',\n Space: 'Espace',\n 'from the space': `de l'espace`,\n 'to the space': `à l'espace`,\n 'Access your spaces from': 'Accédez à vos espaces depuis',\n 'Access this space from': 'Accédez à cet espace depuis',\n 'You now have access to the space': `Vous avez désormais accès à l'espace`,\n 'You no longer have access to the space': `Vous n'avez plus accès à l'espace`,\n 'This space has been permanently deleted': 'Cet espace a été définitivement supprimé',\n anchored: `a ancré`,\n unanchored: `a désancré`,\n Share: 'Partage',\n 'shared with you': 'a partagé avec vous',\n 'no longer share with you': 'ne partage plus avec vous',\n 'You now have access to the share': `Vous avez désormais accès au partage`,\n 'You no longer have access to the share': `Vous n'avez plus accès au partage`,\n 'You are no longer a member of the parent share, your child share has been deleted': `Vous n'êtes plus membre du partage parent, votre partage enfant a été supprimé`,\n 'Access your shares from': 'Accédez à vos partages depuis',\n 'Access password': `Mot de passe d'accès`,\n Sync: 'Synchronisation',\n 'Access your syncs from': 'Accédez à vos synchronisations depuis',\n 'You are no longer synchronizing': 'Vous ne synchronisez plus',\n 'Unlock Request': 'Demande de déverrouillage',\n 'You receive this notification because you have a lock on this file.': 'Vous recevez cette notification car vous avez un verrou sur ce fichier.',\n 'sends you a request to unlock the file': 'vous envoie une demande de déverrouillage du fichier',\n 'Security notification': 'Notification de sécurité',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'Votre compte a été verrouillé après plusieurs tentatives d’authentification infructueuses',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': `Cette notification de sécurité concerne votre compte Sync-in. Merci de contacter un administrateur afin qu’il procède à l’analyse et au déverrouillage de votre compte.`,\n 'Two-factor authentication (2FA) on your account has been disabled': `L’authentification à deux facteurs (2FA) sur votre compte a été désactivée`,\n 'Two-factor authentication (2FA) on your account has been enabled': `L’authentification à deux facteurs (2FA) sur votre compte a été activée`,\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': `Vous recevez cette notification car la sécurité de votre compte Sync-in a été modifiée. Si vous pensez qu’il s’agit d’une erreur, vérifiez vos paramètres de sécurité ou contactez votre administrateur.`,\n 'Address IP': 'Adresse IP',\n Browser: 'Navigateur',\n 'New Version Available': 'Nouvelle version disponible',\n 'You receive this notification because you are the administrator of this server.':\n 'Vous recevez cette notification car vous êtes l’administrateur de ce serveur.',\n 'A new update is available': 'Une nouvelle mise à jour est disponible'\n} as const\n"],"names":["fr","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,0GACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB,CAAC,WAAW,CAAC;IAC/B,gBAAgB,CAAC,UAAU,CAAC;IAC5B,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC,CAAC,oCAAoC,CAAC;IAC1E,0CAA0C,CAAC,iCAAiC,CAAC;IAC7E,2CAA2C;IAC3CC,UAAU,CAAC,OAAO,CAAC;IACnBC,YAAY,CAAC,UAAU,CAAC;IACxBC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC,CAAC,oCAAoC,CAAC;IAC1E,0CAA0C,CAAC,iCAAiC,CAAC;IAC7E,qFAAqF,CAAC,8EAA8E,CAAC;IACrK,2BAA2B;IAC3B,mBAAmB,CAAC,oBAAoB,CAAC;IACzCC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,kBAAkB;IAClB,uEAAuE;IACvE,0CAA0C;IAC1C,yBAAyB;IACzB,mFACE;IACF,8IAA8I,CAAC,uKAAuK,CAAC;IACvT,qEAAqE,CAAC,0EAA0E,CAAC;IACjJ,oEAAoE,CAAC,uEAAuE,CAAC;IAC7I,iMAAiM,CAAC,wMAAwM,CAAC;IAC3Y,cAAc;IACdC,SAAS;IACT,yBAAyB;IACzB,mFACE;IACF,6BAA6B;AAC/B"}
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "hi", {
13
13
  }
14
14
  });
15
15
  const hi = {
16
- 'If you no longer wish to receive notifications, change your preferences directly from your user space': 'यदि आप अब सूचनाएँ प्राप्त नहीं करना चाहते हैं, तो अपने उपयोगकर्ता क्षेत्र से सीधे अपनी प्राथमिकताएँ बदलें',
16
+ 'If you no longer wish to receive notifications, change your preferences directly from your user space.': 'यदि आप अब सूचनाएँ प्राप्त नहीं करना चाहते हैं, तो अपने उपयोगकर्ता क्षेत्र से सीधे अपनी प्राथमिकताएँ बदलें।',
17
17
  'Access it from': 'इसे यहाँ से एक्सेस करें',
18
18
  Comment: 'टिप्पणी',
19
19
  commented: 'ने टिप्पणी की',
@@ -39,6 +39,9 @@ const hi = {
39
39
  Sync: 'समन्वयन',
40
40
  'Access your syncs from': 'अपने समन्वयन यहाँ से एक्सेस करें',
41
41
  'You are no longer synchronizing': 'आप अब समन्वयन नहीं कर रहे हैं',
42
+ 'Unlock Request': 'अनलॉक अनुरोध',
43
+ 'You receive this notification because you have a lock on this file.': 'यह सूचना आपको इसलिए प्राप्त हुई है क्योंकि इस फ़ाइल पर आपका लॉक है।',
44
+ 'sends you a request to unlock the file': 'आपको फ़ाइल अनलॉक करने का अनुरोध भेजता है',
42
45
  'Security notification': 'सुरक्षा सूचना',
43
46
  'Your account has been locked after several unsuccessful authentication attempts': 'कई असफल प्रमाणीकरण प्रयासों के बाद आपका खाता लॉक कर दिया गया है',
44
47
  'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': 'यह सुरक्षा सूचना आपके Sync-in खाते से संबंधित है। कृपया विश्लेषण करने और अपना खाता अनलॉक करने के लिए किसी प्रशासक से संपर्क करें।',
@@ -46,7 +49,10 @@ const hi = {
46
49
  'Two-factor authentication (2FA) on your account has been enabled': 'आपके खाते पर दो‑कारक प्रमाणीकरण (2FA) सक्षम कर दिया गया है',
47
50
  'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': 'आपको यह सूचना इसलिए मिली है क्योंकि आपके Sync-in खाते की सुरक्षा बदल गई है। यदि आपको लगता है कि यह गलती से हुआ है, तो कृपया अपनी सुरक्षा सेटिंग्स की समीक्षा करें या अपने प्रशासक से संपर्क करें।',
48
51
  'Address IP': 'IP पता',
49
- Browser: 'ब्राउज़र'
52
+ Browser: 'ब्राउज़र',
53
+ 'New Version Available': 'नया संस्करण उपलब्ध है',
54
+ 'You receive this notification because you are the administrator of this server.': 'आपको यह सूचना इसलिए मिली है क्योंकि आप इस सर्वर के व्यवस्थापक हैं।',
55
+ 'A new update is available': 'एक नया अपडेट उपलब्ध है'
50
56
  };
51
57
 
52
58
  //# sourceMappingURL=hi.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/hi.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const hi = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space':\n 'यदि आप अब सूचनाएँ प्राप्त नहीं करना चाहते हैं, तो अपने उपयोगकर्ता क्षेत्र से सीधे अपनी प्राथमिकताएँ बदलें',\n 'Access it from': 'इसे यहाँ से एक्सेस करें',\n Comment: 'टिप्पणी',\n commented: 'ने टिप्पणी की',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'यदि आप फ़ाइल के मालिक हैं या आपने भी इस फ़ाइल पर टिप्पणी की है, तो आपको यह सूचना प्राप्त होती है',\n Space: 'स्पेस',\n 'from the space': 'स्पेस से',\n 'to the space': 'स्पेस में',\n 'Access your spaces from': 'अपने स्पेस यहाँ से एक्सेस करें',\n 'Access this space from': 'इस स्पेस को यहाँ से एक्सेस करें',\n 'You now have access to the space': 'अब आपको स्पेस तक पहुंच प्राप्त है',\n 'You no longer have access to the space': 'अब आपको स्पेस तक पहुंच नहीं है',\n 'This space has been permanently deleted': 'यह स्पेस स्थायी रूप से हटा दिया गया है',\n anchored: 'एंकर किया',\n unanchored: 'अनएंकर किया',\n Share: 'साझा',\n 'shared with you': 'आपके साथ साझा किया',\n 'no longer share with you': 'अब आपके साथ साझा नहीं किया',\n 'You now have access to the share': 'अब आपको साझा सामग्री तक पहुंच प्राप्त है',\n 'You no longer have access to the share': 'अब आपको साझा सामग्री तक पहुंच नहीं है',\n 'You are no longer a member of the parent share, your child share has been deleted':\n 'आप अब पैरेंट शेयर के सदस्य नहीं हैं; आपका चाइल्ड शेयर हटा दिया गया है',\n 'Access your shares from': 'अपने शेयर यहाँ से एक्सेस करें',\n 'Access password': 'एक्सेस पासवर्ड',\n Sync: 'समन्वयन',\n 'Access your syncs from': 'अपने समन्वयन यहाँ से एक्सेस करें',\n 'You are no longer synchronizing': 'आप अब समन्वयन नहीं कर रहे हैं',\n 'Security notification': 'सुरक्षा सूचना',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'कई असफल प्रमाणीकरण प्रयासों के बाद आपका खाता लॉक कर दिया गया है',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n 'यह सुरक्षा सूचना आपके Sync-in खाते से संबंधित है। कृपया विश्लेषण करने और अपना खाता अनलॉक करने के लिए किसी प्रशासक से संपर्क करें।',\n 'Two-factor authentication (2FA) on your account has been disabled': 'आपके खाते पर दो‑कारक प्रमाणीकरण (2FA) अक्षम कर दिया गया है',\n 'Two-factor authentication (2FA) on your account has been enabled': 'आपके खाते पर दो‑कारक प्रमाणीकरण (2FA) सक्षम कर दिया गया है',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'आपको यह सूचना इसलिए मिली है क्योंकि आपके Sync-in खाते की सुरक्षा बदल गई है। यदि आपको लगता है कि यह गलती से हुआ है, तो कृपया अपनी सुरक्षा सेटिंग्स की समीक्षा करें या अपने प्रशासक से संपर्क करें।',\n 'Address IP': 'IP पता',\n Browser: 'ब्राउज़र'\n} as const\n"],"names":["hi","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,yGACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,yBAAyB;IACzB,mFACE;IACF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;AACX"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/hi.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const hi = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space.':\n 'यदि आप अब सूचनाएँ प्राप्त नहीं करना चाहते हैं, तो अपने उपयोगकर्ता क्षेत्र से सीधे अपनी प्राथमिकताएँ बदलें।',\n 'Access it from': 'इसे यहाँ से एक्सेस करें',\n Comment: 'टिप्पणी',\n commented: 'ने टिप्पणी की',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'यदि आप फ़ाइल के मालिक हैं या आपने भी इस फ़ाइल पर टिप्पणी की है, तो आपको यह सूचना प्राप्त होती है',\n Space: 'स्पेस',\n 'from the space': 'स्पेस से',\n 'to the space': 'स्पेस में',\n 'Access your spaces from': 'अपने स्पेस यहाँ से एक्सेस करें',\n 'Access this space from': 'इस स्पेस को यहाँ से एक्सेस करें',\n 'You now have access to the space': 'अब आपको स्पेस तक पहुंच प्राप्त है',\n 'You no longer have access to the space': 'अब आपको स्पेस तक पहुंच नहीं है',\n 'This space has been permanently deleted': 'यह स्पेस स्थायी रूप से हटा दिया गया है',\n anchored: 'एंकर किया',\n unanchored: 'अनएंकर किया',\n Share: 'साझा',\n 'shared with you': 'आपके साथ साझा किया',\n 'no longer share with you': 'अब आपके साथ साझा नहीं किया',\n 'You now have access to the share': 'अब आपको साझा सामग्री तक पहुंच प्राप्त है',\n 'You no longer have access to the share': 'अब आपको साझा सामग्री तक पहुंच नहीं है',\n 'You are no longer a member of the parent share, your child share has been deleted':\n 'आप अब पैरेंट शेयर के सदस्य नहीं हैं; आपका चाइल्ड शेयर हटा दिया गया है',\n 'Access your shares from': 'अपने शेयर यहाँ से एक्सेस करें',\n 'Access password': 'एक्सेस पासवर्ड',\n Sync: 'समन्वयन',\n 'Access your syncs from': 'अपने समन्वयन यहाँ से एक्सेस करें',\n 'You are no longer synchronizing': 'आप अब समन्वयन नहीं कर रहे हैं',\n 'Unlock Request': 'अनलॉक अनुरोध',\n 'You receive this notification because you have a lock on this file.': 'यह सूचना आपको इसलिए प्राप्त हुई है क्योंकि इस फ़ाइल पर आपका लॉक है।',\n 'sends you a request to unlock the file': 'आपको फ़ाइल अनलॉक करने का अनुरोध भेजता है',\n 'Security notification': 'सुरक्षा सूचना',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'कई असफल प्रमाणीकरण प्रयासों के बाद आपका खाता लॉक कर दिया गया है',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n 'यह सुरक्षा सूचना आपके Sync-in खाते से संबंधित है। कृपया विश्लेषण करने और अपना खाता अनलॉक करने के लिए किसी प्रशासक से संपर्क करें।',\n 'Two-factor authentication (2FA) on your account has been disabled': 'आपके खाते पर दो‑कारक प्रमाणीकरण (2FA) अक्षम कर दिया गया है',\n 'Two-factor authentication (2FA) on your account has been enabled': 'आपके खाते पर दो‑कारक प्रमाणीकरण (2FA) सक्षम कर दिया गया है',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'आपको यह सूचना इसलिए मिली है क्योंकि आपके Sync-in खाते की सुरक्षा बदल गई है। यदि आपको लगता है कि यह गलती से हुआ है, तो कृपया अपनी सुरक्षा सेटिंग्स की समीक्षा करें या अपने प्रशासक से संपर्क करें।',\n 'Address IP': 'IP पता',\n Browser: 'ब्राउज़र',\n 'New Version Available': 'नया संस्करण उपलब्ध है',\n 'You receive this notification because you are the administrator of this server.':\n 'आपको यह सूचना इसलिए मिली है क्योंकि आप इस सर्वर के व्यवस्थापक हैं।',\n 'A new update is available': 'एक नया अपडेट उपलब्ध है'\n} as const\n"],"names":["hi","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,0GACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,kBAAkB;IAClB,uEAAuE;IACvE,0CAA0C;IAC1C,yBAAyB;IACzB,mFACE;IACF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;IACT,yBAAyB;IACzB,mFACE;IACF,6BAA6B;AAC/B"}
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "it", {
13
13
  }
14
14
  });
15
15
  const it = {
16
- 'If you no longer wish to receive notifications, change your preferences directly from your user space': 'Se non desideri più ricevere notifiche, modifica le tue preferenze direttamente dalla tua area utente',
16
+ 'If you no longer wish to receive notifications, change your preferences directly from your user space.': 'Se non desideri più ricevere notifiche, modifica le tue preferenze direttamente dalla tua area utente.',
17
17
  'Access it from': 'Accedi da',
18
18
  Comment: 'Commento',
19
19
  commented: 'ha commentato',
@@ -39,6 +39,9 @@ const it = {
39
39
  Sync: 'Sincronizzazione',
40
40
  'Access your syncs from': 'Accedi alle tue sincronizzazioni da',
41
41
  'You are no longer synchronizing': 'Non stai più sincronizzando',
42
+ 'Unlock Request': 'Richiesta di sblocco',
43
+ 'You receive this notification because you have a lock on this file.': 'Ricevi questa notifica perché hai un blocco su questo file.',
44
+ 'sends you a request to unlock the file': 'ti invia una richiesta per sbloccare il file',
42
45
  'Security notification': 'Notifica di sicurezza',
43
46
  'Your account has been locked after several unsuccessful authentication attempts': 'Il tuo account è stato bloccato dopo diversi tentativi di autenticazione non riusciti',
44
47
  'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': `Questa notifica di sicurezza riguarda il tuo account Sync-in. Contatta un amministratore per effettuare l'analisi e sbloccare il tuo account.`,
@@ -46,7 +49,10 @@ const it = {
46
49
  'Two-factor authentication (2FA) on your account has been enabled': `L'autenticazione a due fattori (2FA) sul tuo account è stata abilitata`,
47
50
  'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': 'Hai ricevuto questa notifica perché la sicurezza del tuo account Sync-in è cambiata. Se pensi che si tratti di un errore, rivedi le impostazioni di sicurezza o contatta il tuo amministratore.',
48
51
  'Address IP': 'Indirizzo IP',
49
- Browser: 'Browser'
52
+ Browser: 'Browser',
53
+ 'New Version Available': 'Nuova versione disponibile',
54
+ 'You receive this notification because you are the administrator of this server.': 'Ricevi questa notifica perché sei l’amministratore di questo server.',
55
+ 'A new update is available': 'È disponibile un nuovo aggiornamento'
50
56
  };
51
57
 
52
58
  //# sourceMappingURL=it.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/it.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const it = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space':\n 'Se non desideri più ricevere notifiche, modifica le tue preferenze direttamente dalla tua area utente',\n 'Access it from': 'Accedi da',\n Comment: 'Commento',\n commented: 'ha commentato',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'Ricevi questa notifica se sei il proprietario del file o se hai anche commentato questo file',\n Space: 'Spazio',\n 'from the space': 'dallo spazio',\n 'to the space': 'allo spazio',\n 'Access your spaces from': 'Accedi ai tuoi spazi da',\n 'Access this space from': 'Accedi a questo spazio da',\n 'You now have access to the space': 'Ora hai accesso allo spazio',\n 'You no longer have access to the space': 'Non hai più accesso allo spazio',\n 'This space has been permanently deleted': 'Questo spazio è stato eliminato definitivamente',\n anchored: 'ha ancorato',\n unanchored: 'ha disancorato',\n Share: 'Condivisione',\n 'shared with you': 'ha condiviso con te',\n 'no longer share with you': 'non condivide più con te',\n 'You now have access to the share': 'Ora hai accesso alla condivisione',\n 'You no longer have access to the share': 'Non hai più accesso alla condivisione',\n 'You are no longer a member of the parent share, your child share has been deleted':\n 'Non sei più membro della condivisione principale; la tua condivisione figlia è stata eliminata',\n 'Access your shares from': 'Accedi alle tue condivisioni da',\n 'Access password': 'Password di accesso',\n Sync: 'Sincronizzazione',\n 'Access your syncs from': 'Accedi alle tue sincronizzazioni da',\n 'You are no longer synchronizing': 'Non stai più sincronizzando',\n 'Security notification': 'Notifica di sicurezza',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'Il tuo account è stato bloccato dopo diversi tentativi di autenticazione non riusciti',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': `Questa notifica di sicurezza riguarda il tuo account Sync-in. Contatta un amministratore per effettuare l'analisi e sbloccare il tuo account.`,\n 'Two-factor authentication (2FA) on your account has been disabled': `L'autenticazione a due fattori (2FA) sul tuo account è stata disabilitata`,\n 'Two-factor authentication (2FA) on your account has been enabled': `L'autenticazione a due fattori (2FA) sul tuo account è stata abilitata`,\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'Hai ricevuto questa notifica perché la sicurezza del tuo account Sync-in è cambiata. Se pensi che si tratti di un errore, rivedi le impostazioni di sicurezza o contatta il tuo amministratore.',\n 'Address IP': 'Indirizzo IP',\n Browser: 'Browser'\n} as const\n"],"names":["it","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,yGACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,yBAAyB;IACzB,mFACE;IACF,8IAA8I,CAAC,6IAA6I,CAAC;IAC7R,qEAAqE,CAAC,yEAAyE,CAAC;IAChJ,oEAAoE,CAAC,sEAAsE,CAAC;IAC5I,iMACE;IACF,cAAc;IACdC,SAAS;AACX"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/it.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const it = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space.':\n 'Se non desideri più ricevere notifiche, modifica le tue preferenze direttamente dalla tua area utente.',\n 'Access it from': 'Accedi da',\n Comment: 'Commento',\n commented: 'ha commentato',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'Ricevi questa notifica se sei il proprietario del file o se hai anche commentato questo file',\n Space: 'Spazio',\n 'from the space': 'dallo spazio',\n 'to the space': 'allo spazio',\n 'Access your spaces from': 'Accedi ai tuoi spazi da',\n 'Access this space from': 'Accedi a questo spazio da',\n 'You now have access to the space': 'Ora hai accesso allo spazio',\n 'You no longer have access to the space': 'Non hai più accesso allo spazio',\n 'This space has been permanently deleted': 'Questo spazio è stato eliminato definitivamente',\n anchored: 'ha ancorato',\n unanchored: 'ha disancorato',\n Share: 'Condivisione',\n 'shared with you': 'ha condiviso con te',\n 'no longer share with you': 'non condivide più con te',\n 'You now have access to the share': 'Ora hai accesso alla condivisione',\n 'You no longer have access to the share': 'Non hai più accesso alla condivisione',\n 'You are no longer a member of the parent share, your child share has been deleted':\n 'Non sei più membro della condivisione principale; la tua condivisione figlia è stata eliminata',\n 'Access your shares from': 'Accedi alle tue condivisioni da',\n 'Access password': 'Password di accesso',\n Sync: 'Sincronizzazione',\n 'Access your syncs from': 'Accedi alle tue sincronizzazioni da',\n 'You are no longer synchronizing': 'Non stai più sincronizzando',\n 'Unlock Request': 'Richiesta di sblocco',\n 'You receive this notification because you have a lock on this file.': 'Ricevi questa notifica perché hai un blocco su questo file.',\n 'sends you a request to unlock the file': 'ti invia una richiesta per sbloccare il file',\n 'Security notification': 'Notifica di sicurezza',\n 'Your account has been locked after several unsuccessful authentication attempts':\n 'Il tuo account è stato bloccato dopo diversi tentativi di autenticazione non riusciti',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': `Questa notifica di sicurezza riguarda il tuo account Sync-in. Contatta un amministratore per effettuare l'analisi e sbloccare il tuo account.`,\n 'Two-factor authentication (2FA) on your account has been disabled': `L'autenticazione a due fattori (2FA) sul tuo account è stata disabilitata`,\n 'Two-factor authentication (2FA) on your account has been enabled': `L'autenticazione a due fattori (2FA) sul tuo account è stata abilitata`,\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'Hai ricevuto questa notifica perché la sicurezza del tuo account Sync-in è cambiata. Se pensi che si tratti di un errore, rivedi le impostazioni di sicurezza o contatta il tuo amministratore.',\n 'Address IP': 'Indirizzo IP',\n Browser: 'Browser',\n 'New Version Available': 'Nuova versione disponibile',\n 'You receive this notification because you are the administrator of this server.':\n 'Ricevi questa notifica perché sei l’amministratore di questo server.',\n 'A new update is available': 'È disponibile un nuovo aggiornamento'\n} as const\n"],"names":["it","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,0GACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,kBAAkB;IAClB,uEAAuE;IACvE,0CAA0C;IAC1C,yBAAyB;IACzB,mFACE;IACF,8IAA8I,CAAC,6IAA6I,CAAC;IAC7R,qEAAqE,CAAC,yEAAyE,CAAC;IAChJ,oEAAoE,CAAC,sEAAsE,CAAC;IAC5I,iMACE;IACF,cAAc;IACdC,SAAS;IACT,yBAAyB;IACzB,mFACE;IACF,6BAA6B;AAC/B"}
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "ja", {
13
13
  }
14
14
  });
15
15
  const ja = {
16
- 'If you no longer wish to receive notifications, change your preferences directly from your user space': '通知の受信を希望しない場合は、ユーザー用スペースから直接設定を変更してください。',
16
+ 'If you no longer wish to receive notifications, change your preferences directly from your user space.': '通知の受信を希望しない場合は、ユーザー用スペースから直接設定を変更してください。',
17
17
  'Access it from': 'こちらからアクセス',
18
18
  Comment: 'コメント',
19
19
  commented: 'コメントしました',
@@ -39,6 +39,9 @@ const ja = {
39
39
  Sync: '同期',
40
40
  'Access your syncs from': '次の場所からあなたの同期にアクセス',
41
41
  'You are no longer synchronizing': '同期を停止しました',
42
+ 'Unlock Request': 'ロック解除リクエスト',
43
+ 'You receive this notification because you have a lock on this file.': 'このファイルにロックが設定されているため、この通知を受け取っています。',
44
+ 'sends you a request to unlock the file': 'あなたにファイルのロック解除をリクエストしました',
42
45
  'Security notification': 'セキュリティ通知',
43
46
  'Your account has been locked after several unsuccessful authentication attempts': '複数回の認証失敗により、あなたのアカウントはロックされました',
44
47
  'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': 'このセキュリティ通知はあなたの Sync-in アカウントに関するものです。分析とアカウントのロック解除のため、管理者に連絡してください。',
@@ -46,7 +49,10 @@ const ja = {
46
49
  'Two-factor authentication (2FA) on your account has been enabled': 'あなたのアカウントの二要素認証(2FA)が有効化されました',
47
50
  'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': 'この通知は、あなたの Sync-in アカウントのセキュリティが変更されたため送信されました。誤りだと思われる場合は、セキュリティ設定を確認するか管理者に連絡してください。',
48
51
  'Address IP': 'IP アドレス',
49
- Browser: 'ブラウザー'
52
+ Browser: 'ブラウザー',
53
+ 'New Version Available': '新しいバージョンが利用可能です',
54
+ 'You receive this notification because you are the administrator of this server.': 'あなたがこのサーバーの管理者であるため、この通知を受け取っています。',
55
+ 'A new update is available': '新しいアップデートが利用可能です'
50
56
  };
51
57
 
52
58
  //# sourceMappingURL=ja.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/ja.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const ja = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space':\n '通知の受信を希望しない場合は、ユーザー用スペースから直接設定を変更してください。',\n 'Access it from': 'こちらからアクセス',\n Comment: 'コメント',\n commented: 'コメントしました',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'この通知は、あなたがファイルの所有者である場合、またはこのファイルにコメントした場合に送信されます。',\n Space: 'スペース',\n 'from the space': 'スペースから',\n 'to the space': 'スペースへ',\n 'Access your spaces from': '次の場所からあなたのスペースにアクセス',\n 'Access this space from': '次の場所からこのスペースにアクセス',\n 'You now have access to the space': 'あなたはこのスペースにアクセスできるようになりました',\n 'You no longer have access to the space': 'あなたはこのスペースにアクセスできなくなりました',\n 'This space has been permanently deleted': 'このスペースは完全に削除されました',\n anchored: '固定しました',\n unanchored: '固定を解除しました',\n Share: '共有',\n 'shared with you': 'あなたと共有しました',\n 'no longer share with you': 'あなたとの共有を解除しました',\n 'You now have access to the share': '共有にアクセスできるようになりました',\n 'You no longer have access to the share': '共有へのアクセス権がなくなりました',\n 'You are no longer a member of the parent share, your child share has been deleted':\n '親共有のメンバーではなくなったため、あなたの子共有は削除されました',\n 'Access your shares from': '次の場所からあなたの共有にアクセス',\n 'Access password': 'アクセスパスワード',\n Sync: '同期',\n 'Access your syncs from': '次の場所からあなたの同期にアクセス',\n 'You are no longer synchronizing': '同期を停止しました',\n 'Security notification': 'セキュリティ通知',\n 'Your account has been locked after several unsuccessful authentication attempts': '複数回の認証失敗により、あなたのアカウントはロックされました',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n 'このセキュリティ通知はあなたの Sync-in アカウントに関するものです。分析とアカウントのロック解除のため、管理者に連絡してください。',\n 'Two-factor authentication (2FA) on your account has been disabled': 'あなたのアカウントの二要素認証(2FA)が無効化されました',\n 'Two-factor authentication (2FA) on your account has been enabled': 'あなたのアカウントの二要素認証(2FA)が有効化されました',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'この通知は、あなたの Sync-in アカウントのセキュリティが変更されたため送信されました。誤りだと思われる場合は、セキュリティ設定を確認するか管理者に連絡してください。',\n 'Address IP': 'IP アドレス',\n Browser: 'ブラウザー'\n} as const\n"],"names":["ja","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,yGACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,yBAAyB;IACzB,mFAAmF;IACnF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;AACX"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/ja.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const ja = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space.':\n '通知の受信を希望しない場合は、ユーザー用スペースから直接設定を変更してください。',\n 'Access it from': 'こちらからアクセス',\n Comment: 'コメント',\n commented: 'コメントしました',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n 'この通知は、あなたがファイルの所有者である場合、またはこのファイルにコメントした場合に送信されます。',\n Space: 'スペース',\n 'from the space': 'スペースから',\n 'to the space': 'スペースへ',\n 'Access your spaces from': '次の場所からあなたのスペースにアクセス',\n 'Access this space from': '次の場所からこのスペースにアクセス',\n 'You now have access to the space': 'あなたはこのスペースにアクセスできるようになりました',\n 'You no longer have access to the space': 'あなたはこのスペースにアクセスできなくなりました',\n 'This space has been permanently deleted': 'このスペースは完全に削除されました',\n anchored: '固定しました',\n unanchored: '固定を解除しました',\n Share: '共有',\n 'shared with you': 'あなたと共有しました',\n 'no longer share with you': 'あなたとの共有を解除しました',\n 'You now have access to the share': '共有にアクセスできるようになりました',\n 'You no longer have access to the share': '共有へのアクセス権がなくなりました',\n 'You are no longer a member of the parent share, your child share has been deleted':\n '親共有のメンバーではなくなったため、あなたの子共有は削除されました',\n 'Access your shares from': '次の場所からあなたの共有にアクセス',\n 'Access password': 'アクセスパスワード',\n Sync: '同期',\n 'Access your syncs from': '次の場所からあなたの同期にアクセス',\n 'You are no longer synchronizing': '同期を停止しました',\n 'Unlock Request': 'ロック解除リクエスト',\n 'You receive this notification because you have a lock on this file.': 'このファイルにロックが設定されているため、この通知を受け取っています。',\n 'sends you a request to unlock the file': 'あなたにファイルのロック解除をリクエストしました',\n 'Security notification': 'セキュリティ通知',\n 'Your account has been locked after several unsuccessful authentication attempts': '複数回の認証失敗により、あなたのアカウントはロックされました',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n 'このセキュリティ通知はあなたの Sync-in アカウントに関するものです。分析とアカウントのロック解除のため、管理者に連絡してください。',\n 'Two-factor authentication (2FA) on your account has been disabled': 'あなたのアカウントの二要素認証(2FA)が無効化されました',\n 'Two-factor authentication (2FA) on your account has been enabled': 'あなたのアカウントの二要素認証(2FA)が有効化されました',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'この通知は、あなたの Sync-in アカウントのセキュリティが変更されたため送信されました。誤りだと思われる場合は、セキュリティ設定を確認するか管理者に連絡してください。',\n 'Address IP': 'IP アドレス',\n Browser: 'ブラウザー',\n 'New Version Available': '新しいバージョンが利用可能です',\n 'You receive this notification because you are the administrator of this server.':\n 'あなたがこのサーバーの管理者であるため、この通知を受け取っています。',\n 'A new update is available': '新しいアップデートが利用可能です'\n} as const\n"],"names":["ja","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,0GACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,kBAAkB;IAClB,uEAAuE;IACvE,0CAA0C;IAC1C,yBAAyB;IACzB,mFAAmF;IACnF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;IACT,yBAAyB;IACzB,mFACE;IACF,6BAA6B;AAC/B"}
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "ko", {
13
13
  }
14
14
  });
15
15
  const ko = {
16
- 'If you no longer wish to receive notifications, change your preferences directly from your user space': '더 이상 알림을 받고 싶지 않다면, 사용자 공간에서 바로 환경설정을 변경하세요.',
16
+ 'If you no longer wish to receive notifications, change your preferences directly from your user space.': '더 이상 알림을 받고 싶지 않다면, 사용자 공간에서 바로 환경설정을 변경하세요.',
17
17
  'Access it from': '여기에서 액세스',
18
18
  Comment: '댓글',
19
19
  commented: '댓글을 달았습니다',
@@ -39,6 +39,9 @@ const ko = {
39
39
  Sync: '동기화',
40
40
  'Access your syncs from': '다음에서 내 동기화에 액세스',
41
41
  'You are no longer synchronizing': '더 이상 동기화하지 않습니다',
42
+ 'Unlock Request': '잠금 해제 요청',
43
+ 'You receive this notification because you have a lock on this file.': '이 파일에 잠금이 설정되어 있어 이 알림을 받았습니다.',
44
+ 'sends you a request to unlock the file': '파일 잠금 해제 요청을 보냈습니다',
42
45
  'Security notification': '보안 알림',
43
46
  'Your account has been locked after several unsuccessful authentication attempts': '여러 번 인증에 실패하여 계정이 잠겼습니다',
44
47
  'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.': '이 보안 알림은 귀하의 Sync-in 계정과 관련된 것입니다. 분석 및 계정 잠금 해제를 위해 관리자에게 문의해 주세요.',
@@ -46,7 +49,10 @@ const ko = {
46
49
  'Two-factor authentication (2FA) on your account has been enabled': '계정의 이중 인증(2FA)이 활성화되었습니다',
47
50
  'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.': 'Sync-in 계정의 보안이 변경되어 이 알림을 받았습니다. 실수라고 생각되면 보안 설정을 확인하거나 관리자에게 문의하세요.',
48
51
  'Address IP': 'IP 주소',
49
- Browser: '브라우저'
52
+ Browser: '브라우저',
53
+ 'New Version Available': '새 버전이 이용 가능합니다',
54
+ 'You receive this notification because you are the administrator of this server.': '이 서버의 관리자이기 때문에 이 알림을 받았습니다.',
55
+ 'A new update is available': '새로운 업데이트가 이용 가능합니다'
50
56
  };
51
57
 
52
58
  //# sourceMappingURL=ko.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/ko.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const ko = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space':\n '더 이상 알림을 받고 싶지 않다면, 사용자 공간에서 바로 환경설정을 변경하세요.',\n 'Access it from': '여기에서 액세스',\n Comment: '댓글',\n commented: '댓글을 달았습니다',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n '파일의 소유자이거나 이 파일에 댓글을 단 경우 이 알림을 받게 됩니다.',\n Space: '공간',\n 'from the space': '공간에서',\n 'to the space': '공간으로',\n 'Access your spaces from': '다음에서 내 공간에 액세스',\n 'Access this space from': '다음에서 이 공간에 액세스',\n 'You now have access to the space': '이제 이 공간에 액세스할 수 있습니다',\n 'You no longer have access to the space': '더 이상 이 공간에 액세스할 수 없습니다',\n 'This space has been permanently deleted': '이 공간은 영구히 삭제되었습니다',\n anchored: '고정했습니다',\n unanchored: '고정을 해제했습니다',\n Share: '공유',\n 'shared with you': '당신과 공유했습니다',\n 'no longer share with you': '더 이상 당신과 공유하지 않습니다',\n 'You now have access to the share': '이제 해당 공유에 액세스할 수 있습니다',\n 'You no longer have access to the share': '더 이상 해당 공유에 액세스할 수 없습니다',\n 'You are no longer a member of the parent share, your child share has been deleted':\n '상위 공유의 구성원이 더 이상 아니므로, 하위 공유가 삭제되었습니다',\n 'Access your shares from': '다음에서 내 공유에 액세스',\n 'Access password': '액세스 비밀번호',\n Sync: '동기화',\n 'Access your syncs from': '다음에서 내 동기화에 액세스',\n 'You are no longer synchronizing': '더 이상 동기화하지 않습니다',\n 'Security notification': '보안 알림',\n 'Your account has been locked after several unsuccessful authentication attempts': '여러 번 인증에 실패하여 계정이 잠겼습니다',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n '이 보안 알림은 귀하의 Sync-in 계정과 관련된 것입니다. 분석 및 계정 잠금 해제를 위해 관리자에게 문의해 주세요.',\n 'Two-factor authentication (2FA) on your account has been disabled': '계정의 이중 인증(2FA)이 비활성화되었습니다',\n 'Two-factor authentication (2FA) on your account has been enabled': '계정의 이중 인증(2FA)이 활성화되었습니다',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'Sync-in 계정의 보안이 변경되어 이 알림을 받았습니다. 실수라고 생각되면 보안 설정을 확인하거나 관리자에게 문의하세요.',\n 'Address IP': 'IP 주소',\n Browser: '브라우저'\n} as const\n"],"names":["ko","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,yGACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,yBAAyB;IACzB,mFAAmF;IACnF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;AACX"}
1
+ {"version":3,"sources":["../../../../../backend/src/applications/notifications/i18n/ko.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nexport const ko = {\n 'If you no longer wish to receive notifications, change your preferences directly from your user space.':\n '더 이상 알림을 받고 싶지 않다면, 사용자 공간에서 바로 환경설정을 변경하세요.',\n 'Access it from': '여기에서 액세스',\n Comment: '댓글',\n commented: '댓글을 달았습니다',\n 'You receive this notification if you are the owner of the file or if you have also commented on this file':\n '파일의 소유자이거나 이 파일에 댓글을 단 경우 이 알림을 받게 됩니다.',\n Space: '공간',\n 'from the space': '공간에서',\n 'to the space': '공간으로',\n 'Access your spaces from': '다음에서 내 공간에 액세스',\n 'Access this space from': '다음에서 이 공간에 액세스',\n 'You now have access to the space': '이제 이 공간에 액세스할 수 있습니다',\n 'You no longer have access to the space': '더 이상 이 공간에 액세스할 수 없습니다',\n 'This space has been permanently deleted': '이 공간은 영구히 삭제되었습니다',\n anchored: '고정했습니다',\n unanchored: '고정을 해제했습니다',\n Share: '공유',\n 'shared with you': '당신과 공유했습니다',\n 'no longer share with you': '더 이상 당신과 공유하지 않습니다',\n 'You now have access to the share': '이제 해당 공유에 액세스할 수 있습니다',\n 'You no longer have access to the share': '더 이상 해당 공유에 액세스할 수 없습니다',\n 'You are no longer a member of the parent share, your child share has been deleted':\n '상위 공유의 구성원이 더 이상 아니므로, 하위 공유가 삭제되었습니다',\n 'Access your shares from': '다음에서 내 공유에 액세스',\n 'Access password': '액세스 비밀번호',\n Sync: '동기화',\n 'Access your syncs from': '다음에서 내 동기화에 액세스',\n 'You are no longer synchronizing': '더 이상 동기화하지 않습니다',\n 'Unlock Request': '잠금 해제 요청',\n 'You receive this notification because you have a lock on this file.': '이 파일에 잠금이 설정되어 있어 이 알림을 받았습니다.',\n 'sends you a request to unlock the file': '파일 잠금 해제 요청을 보냈습니다',\n 'Security notification': '보안 알림',\n 'Your account has been locked after several unsuccessful authentication attempts': '여러 번 인증에 실패하여 계정이 잠겼습니다',\n 'This security notification concerns your Sync-in account. Please contact an administrator to perform the analysis and unlock your account.':\n '이 보안 알림은 귀하의 Sync-in 계정과 관련된 것입니다. 분석 및 계정 잠금 해제를 위해 관리자에게 문의해 주세요.',\n 'Two-factor authentication (2FA) on your account has been disabled': '계정의 이중 인증(2FA)이 비활성화되었습니다',\n 'Two-factor authentication (2FA) on your account has been enabled': '계정의 이중 인증(2FA)이 활성화되었습니다',\n 'You received this notification because the security of your Sync-in account has changed. If you think this was a mistake, please review your security settings or contact your administrator.':\n 'Sync-in 계정의 보안이 변경되어 이 알림을 받았습니다. 실수라고 생각되면 보안 설정을 확인하거나 관리자에게 문의하세요.',\n 'Address IP': 'IP 주소',\n Browser: '브라우저',\n 'New Version Available': '새 버전이 이용 가능합니다',\n 'You receive this notification because you are the administrator of this server.': '이 서버의 관리자이기 때문에 이 알림을 받았습니다.',\n 'A new update is available': '새로운 업데이트가 이용 가능합니다'\n} as const\n"],"names":["ko","Comment","commented","Space","anchored","unanchored","Share","Sync","Browser"],"mappings":"AAAA;;;;CAIC;;;;+BAEYA;;;eAAAA;;;AAAN,MAAMA,KAAK;IAChB,0GACE;IACF,kBAAkB;IAClBC,SAAS;IACTC,WAAW;IACX,6GACE;IACFC,OAAO;IACP,kBAAkB;IAClB,gBAAgB;IAChB,2BAA2B;IAC3B,0BAA0B;IAC1B,oCAAoC;IACpC,0CAA0C;IAC1C,2CAA2C;IAC3CC,UAAU;IACVC,YAAY;IACZC,OAAO;IACP,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC;IACpC,0CAA0C;IAC1C,qFACE;IACF,2BAA2B;IAC3B,mBAAmB;IACnBC,MAAM;IACN,0BAA0B;IAC1B,mCAAmC;IACnC,kBAAkB;IAClB,uEAAuE;IACvE,0CAA0C;IAC1C,yBAAyB;IACzB,mFAAmF;IACnF,8IACE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,iMACE;IACF,cAAc;IACdC,SAAS;IACT,yBAAyB;IACzB,mFAAmF;IACnF,6BAA6B;AAC/B"}