@sync-in/server 1.3.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 (1811) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/LICENSE +660 -0
  3. package/README.md +106 -0
  4. package/environment/environment.dist.min.yaml +11 -0
  5. package/environment/environment.dist.yaml +95 -0
  6. package/migrations/0000_init.sql +324 -0
  7. package/migrations/meta/0000_snapshot.json +2417 -0
  8. package/migrations/meta/_journal.json +13 -0
  9. package/package.json +80 -0
  10. package/server/app.bootstrap.js +103 -0
  11. package/server/app.bootstrap.js.map +1 -0
  12. package/server/app.constants.js +58 -0
  13. package/server/app.constants.js.map +1 -0
  14. package/server/app.e2e-spec.js +34 -0
  15. package/server/app.e2e-spec.js.map +1 -0
  16. package/server/app.module.js +72 -0
  17. package/server/app.module.js.map +1 -0
  18. package/server/app.service.js +72 -0
  19. package/server/app.service.js.map +1 -0
  20. package/server/app.service.spec.js +94 -0
  21. package/server/app.service.spec.js.map +1 -0
  22. package/server/applications/admin/admin.module.js +31 -0
  23. package/server/applications/admin/admin.module.js.map +1 -0
  24. package/server/applications/admin/constants/routes.js +19 -0
  25. package/server/applications/admin/constants/routes.js.map +1 -0
  26. package/server/applications/applications.config.js +50 -0
  27. package/server/applications/applications.config.js.map +1 -0
  28. package/server/applications/applications.constants.js +69 -0
  29. package/server/applications/applications.constants.js.map +1 -0
  30. package/server/applications/applications.module.js +59 -0
  31. package/server/applications/applications.module.js.map +1 -0
  32. package/server/applications/comments/comments.controller.js +133 -0
  33. package/server/applications/comments/comments.controller.js.map +1 -0
  34. package/server/applications/comments/comments.controller.spec.js +63 -0
  35. package/server/applications/comments/comments.controller.spec.js.map +1 -0
  36. package/server/applications/comments/comments.module.js +39 -0
  37. package/server/applications/comments/comments.module.js.map +1 -0
  38. package/server/applications/comments/constants/routes.js +35 -0
  39. package/server/applications/comments/constants/routes.js.map +1 -0
  40. package/server/applications/comments/dto/comment.dto.js +62 -0
  41. package/server/applications/comments/dto/comment.dto.js.map +1 -0
  42. package/server/applications/comments/interfaces/comment-recent.interface.js +10 -0
  43. package/server/applications/comments/interfaces/comment-recent.interface.js.map +1 -0
  44. package/server/applications/comments/schemas/comment.interface.js +18 -0
  45. package/server/applications/comments/schemas/comment.interface.js.map +1 -0
  46. package/server/applications/comments/schemas/comments.schema.js +57 -0
  47. package/server/applications/comments/schemas/comments.schema.js.map +1 -0
  48. package/server/applications/comments/services/comments-manager.service.js +137 -0
  49. package/server/applications/comments/services/comments-manager.service.js.map +1 -0
  50. package/server/applications/comments/services/comments-manager.service.spec.js +51 -0
  51. package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -0
  52. package/server/applications/comments/services/comments-queries.service.js +185 -0
  53. package/server/applications/comments/services/comments-queries.service.js.map +1 -0
  54. package/server/applications/files/adapters/files-indexer-mysql.service.js +174 -0
  55. package/server/applications/files/adapters/files-indexer-mysql.service.js.map +1 -0
  56. package/server/applications/files/assets/samples/sample.docx +0 -0
  57. package/server/applications/files/assets/samples/sample.odp +0 -0
  58. package/server/applications/files/assets/samples/sample.ods +0 -0
  59. package/server/applications/files/assets/samples/sample.odt +0 -0
  60. package/server/applications/files/assets/samples/sample.pptx +0 -0
  61. package/server/applications/files/assets/samples/sample.rtf +194 -0
  62. package/server/applications/files/assets/samples/sample.xlsx +0 -0
  63. package/server/applications/files/constants/cache.js +36 -0
  64. package/server/applications/files/constants/cache.js.map +1 -0
  65. package/server/applications/files/constants/compress.js +26 -0
  66. package/server/applications/files/constants/compress.js.map +1 -0
  67. package/server/applications/files/constants/files.js +103 -0
  68. package/server/applications/files/constants/files.js.map +1 -0
  69. package/server/applications/files/constants/indexing.js +49 -0
  70. package/server/applications/files/constants/indexing.js.map +1 -0
  71. package/server/applications/files/constants/only-office.js +536 -0
  72. package/server/applications/files/constants/only-office.js.map +1 -0
  73. package/server/applications/files/constants/operations.js +29 -0
  74. package/server/applications/files/constants/operations.js.map +1 -0
  75. package/server/applications/files/constants/routes.js +100 -0
  76. package/server/applications/files/constants/routes.js.map +1 -0
  77. package/server/applications/files/constants/samples.js +35 -0
  78. package/server/applications/files/constants/samples.js.map +1 -0
  79. package/server/applications/files/decorators/only-office-environment.decorator.js +32 -0
  80. package/server/applications/files/decorators/only-office-environment.decorator.js.map +1 -0
  81. package/server/applications/files/dto/file-operations.dto.js +145 -0
  82. package/server/applications/files/dto/file-operations.dto.js.map +1 -0
  83. package/server/applications/files/events/file-task-event.js +23 -0
  84. package/server/applications/files/events/file-task-event.js.map +1 -0
  85. package/server/applications/files/files-only-office.controller.js +111 -0
  86. package/server/applications/files/files-only-office.controller.js.map +1 -0
  87. package/server/applications/files/files-only-office.controller.spec.js +47 -0
  88. package/server/applications/files/files-only-office.controller.spec.js.map +1 -0
  89. package/server/applications/files/files-tasks.controller.js +97 -0
  90. package/server/applications/files/files-tasks.controller.js.map +1 -0
  91. package/server/applications/files/files-tasks.controller.spec.js +40 -0
  92. package/server/applications/files/files-tasks.controller.spec.js.map +1 -0
  93. package/server/applications/files/files.config.js +96 -0
  94. package/server/applications/files/files.config.js.map +1 -0
  95. package/server/applications/files/files.controller.js +319 -0
  96. package/server/applications/files/files.controller.js.map +1 -0
  97. package/server/applications/files/files.controller.spec.js +84 -0
  98. package/server/applications/files/files.controller.spec.js.map +1 -0
  99. package/server/applications/files/files.module.js +78 -0
  100. package/server/applications/files/files.module.js.map +1 -0
  101. package/server/applications/files/guards/files-only-office.guard.js +48 -0
  102. package/server/applications/files/guards/files-only-office.guard.js.map +1 -0
  103. package/server/applications/files/guards/files-only-office.guard.spec.js +16 -0
  104. package/server/applications/files/guards/files-only-office.guard.spec.js.map +1 -0
  105. package/server/applications/files/guards/files-only-office.strategy.js +60 -0
  106. package/server/applications/files/guards/files-only-office.strategy.js.map +1 -0
  107. package/server/applications/files/interfaces/file-db-props.interface.js +10 -0
  108. package/server/applications/files/interfaces/file-db-props.interface.js.map +1 -0
  109. package/server/applications/files/interfaces/file-lock.interface.js +10 -0
  110. package/server/applications/files/interfaces/file-lock.interface.js.map +1 -0
  111. package/server/applications/files/interfaces/file-parse-index.js +10 -0
  112. package/server/applications/files/interfaces/file-parse-index.js.map +1 -0
  113. package/server/applications/files/interfaces/file-props.interface.js +10 -0
  114. package/server/applications/files/interfaces/file-props.interface.js.map +1 -0
  115. package/server/applications/files/interfaces/file-recent-location.interface.js +10 -0
  116. package/server/applications/files/interfaces/file-recent-location.interface.js.map +1 -0
  117. package/server/applications/files/interfaces/file-space.interface.js +18 -0
  118. package/server/applications/files/interfaces/file-space.interface.js.map +1 -0
  119. package/server/applications/files/interfaces/file-tree.interface.js +10 -0
  120. package/server/applications/files/interfaces/file-tree.interface.js.map +1 -0
  121. package/server/applications/files/interfaces/only-office-config.interface.js +10 -0
  122. package/server/applications/files/interfaces/only-office-config.interface.js.map +1 -0
  123. package/server/applications/files/models/file-error.js +23 -0
  124. package/server/applications/files/models/file-error.js.map +1 -0
  125. package/server/applications/files/models/file-lock-error.js +23 -0
  126. package/server/applications/files/models/file-lock-error.js.map +1 -0
  127. package/server/applications/files/models/file-task.js +52 -0
  128. package/server/applications/files/models/file-task.js.map +1 -0
  129. package/server/applications/files/models/files-indexer.js +18 -0
  130. package/server/applications/files/models/files-indexer.js.map +1 -0
  131. package/server/applications/files/schemas/file-content.interface.js +10 -0
  132. package/server/applications/files/schemas/file-content.interface.js.map +1 -0
  133. package/server/applications/files/schemas/file-recent.interface.js +18 -0
  134. package/server/applications/files/schemas/file-recent.interface.js.map +1 -0
  135. package/server/applications/files/schemas/file.interface.js +18 -0
  136. package/server/applications/files/schemas/file.interface.js.map +1 -0
  137. package/server/applications/files/schemas/files-content.schema.js +41 -0
  138. package/server/applications/files/schemas/files-content.schema.js.map +1 -0
  139. package/server/applications/files/schemas/files-recents.schema.js +63 -0
  140. package/server/applications/files/schemas/files-recents.schema.js.map +1 -0
  141. package/server/applications/files/schemas/files.schema.js +100 -0
  142. package/server/applications/files/schemas/files.schema.js.map +1 -0
  143. package/server/applications/files/services/files-content-manager.service.js +204 -0
  144. package/server/applications/files/services/files-content-manager.service.js.map +1 -0
  145. package/server/applications/files/services/files-lock-manager.service.js +285 -0
  146. package/server/applications/files/services/files-lock-manager.service.js.map +1 -0
  147. package/server/applications/files/services/files-lock-manager.service.spec.js +40 -0
  148. package/server/applications/files/services/files-lock-manager.service.spec.js.map +1 -0
  149. package/server/applications/files/services/files-manager.service.js +565 -0
  150. package/server/applications/files/services/files-manager.service.js.map +1 -0
  151. package/server/applications/files/services/files-manager.service.spec.js +43 -0
  152. package/server/applications/files/services/files-manager.service.spec.js.map +1 -0
  153. package/server/applications/files/services/files-methods.service.js +180 -0
  154. package/server/applications/files/services/files-methods.service.js.map +1 -0
  155. package/server/applications/files/services/files-methods.service.spec.js +135 -0
  156. package/server/applications/files/services/files-methods.service.spec.js.map +1 -0
  157. package/server/applications/files/services/files-only-office-manager.service.js +395 -0
  158. package/server/applications/files/services/files-only-office-manager.service.js.map +1 -0
  159. package/server/applications/files/services/files-only-office-manager.service.spec.js +58 -0
  160. package/server/applications/files/services/files-only-office-manager.service.spec.js.map +1 -0
  161. package/server/applications/files/services/files-parser.service.js +189 -0
  162. package/server/applications/files/services/files-parser.service.js.map +1 -0
  163. package/server/applications/files/services/files-parser.service.spec.js +31 -0
  164. package/server/applications/files/services/files-parser.service.spec.js.map +1 -0
  165. package/server/applications/files/services/files-queries.service.js +314 -0
  166. package/server/applications/files/services/files-queries.service.js.map +1 -0
  167. package/server/applications/files/services/files-recents.service.js +97 -0
  168. package/server/applications/files/services/files-recents.service.js.map +1 -0
  169. package/server/applications/files/services/files-recents.service.spec.js +41 -0
  170. package/server/applications/files/services/files-recents.service.spec.js.map +1 -0
  171. package/server/applications/files/services/files-scheduler.service.js +179 -0
  172. package/server/applications/files/services/files-scheduler.service.js.map +1 -0
  173. package/server/applications/files/services/files-search-manager.service.js +146 -0
  174. package/server/applications/files/services/files-search-manager.service.js.map +1 -0
  175. package/server/applications/files/services/files-search-manager.service.spec.js +46 -0
  176. package/server/applications/files/services/files-search-manager.service.spec.js.map +1 -0
  177. package/server/applications/files/services/files-tasks-manager.service.js +253 -0
  178. package/server/applications/files/services/files-tasks-manager.service.js.map +1 -0
  179. package/server/applications/files/services/files-tasks-manager.service.spec.js +46 -0
  180. package/server/applications/files/services/files-tasks-manager.service.spec.js.map +1 -0
  181. package/server/applications/files/utils/doc-textify/adapters/excel.js +91 -0
  182. package/server/applications/files/utils/doc-textify/adapters/excel.js.map +1 -0
  183. package/server/applications/files/utils/doc-textify/adapters/html.js +33 -0
  184. package/server/applications/files/utils/doc-textify/adapters/html.js.map +1 -0
  185. package/server/applications/files/utils/doc-textify/adapters/open-office.js +110 -0
  186. package/server/applications/files/utils/doc-textify/adapters/open-office.js.map +1 -0
  187. package/server/applications/files/utils/doc-textify/adapters/pdf.js +67 -0
  188. package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -0
  189. package/server/applications/files/utils/doc-textify/adapters/power-point.js +111 -0
  190. package/server/applications/files/utils/doc-textify/adapters/power-point.js.map +1 -0
  191. package/server/applications/files/utils/doc-textify/adapters/text.js +27 -0
  192. package/server/applications/files/utils/doc-textify/adapters/text.js.map +1 -0
  193. package/server/applications/files/utils/doc-textify/adapters/word.js +101 -0
  194. package/server/applications/files/utils/doc-textify/adapters/word.js.map +1 -0
  195. package/server/applications/files/utils/doc-textify/doc-textify.js +75 -0
  196. package/server/applications/files/utils/doc-textify/doc-textify.js.map +1 -0
  197. package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js +10 -0
  198. package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js.map +1 -0
  199. package/server/applications/files/utils/doc-textify/utils/clean.js +34 -0
  200. package/server/applications/files/utils/doc-textify/utils/clean.js.map +1 -0
  201. package/server/applications/files/utils/files-search.js +144 -0
  202. package/server/applications/files/utils/files-search.js.map +1 -0
  203. package/server/applications/files/utils/files-tree.js +86 -0
  204. package/server/applications/files/utils/files-tree.js.map +1 -0
  205. package/server/applications/files/utils/files.js +386 -0
  206. package/server/applications/files/utils/files.js.map +1 -0
  207. package/server/applications/files/utils/send-file.js +70 -0
  208. package/server/applications/files/utils/send-file.js.map +1 -0
  209. package/server/applications/files/utils/unzip-file.js +60 -0
  210. package/server/applications/files/utils/unzip-file.js.map +1 -0
  211. package/server/applications/files/utils/url-file.js +39 -0
  212. package/server/applications/files/utils/url-file.js.map +1 -0
  213. package/server/applications/links/constants/cache.js +28 -0
  214. package/server/applications/links/constants/cache.js.map +1 -0
  215. package/server/applications/links/constants/links.js +36 -0
  216. package/server/applications/links/constants/links.js.map +1 -0
  217. package/server/applications/links/constants/routes.js +41 -0
  218. package/server/applications/links/constants/routes.js.map +1 -0
  219. package/server/applications/links/dto/create-or-update-link.dto.js +95 -0
  220. package/server/applications/links/dto/create-or-update-link.dto.js.map +1 -0
  221. package/server/applications/links/interfaces/link-guest.interface.js +10 -0
  222. package/server/applications/links/interfaces/link-guest.interface.js.map +1 -0
  223. package/server/applications/links/interfaces/link-space.interface.js +10 -0
  224. package/server/applications/links/interfaces/link-space.interface.js.map +1 -0
  225. package/server/applications/links/links.controller.js +107 -0
  226. package/server/applications/links/links.controller.js.map +1 -0
  227. package/server/applications/links/links.controller.spec.js +88 -0
  228. package/server/applications/links/links.controller.spec.js.map +1 -0
  229. package/server/applications/links/schemas/link.interface.js +18 -0
  230. package/server/applications/links/schemas/link.interface.js.map +1 -0
  231. package/server/applications/links/schemas/links.schema.js +56 -0
  232. package/server/applications/links/schemas/links.schema.js.map +1 -0
  233. package/server/applications/links/services/links-manager.service.js +158 -0
  234. package/server/applications/links/services/links-manager.service.js.map +1 -0
  235. package/server/applications/links/services/links-manager.service.spec.js +84 -0
  236. package/server/applications/links/services/links-manager.service.spec.js.map +1 -0
  237. package/server/applications/links/services/links-queries.service.js +181 -0
  238. package/server/applications/links/services/links-queries.service.js.map +1 -0
  239. package/server/applications/notifications/constants/notifications.js +62 -0
  240. package/server/applications/notifications/constants/notifications.js.map +1 -0
  241. package/server/applications/notifications/constants/routes.js +30 -0
  242. package/server/applications/notifications/constants/routes.js.map +1 -0
  243. package/server/applications/notifications/constants/websocket.js +22 -0
  244. package/server/applications/notifications/constants/websocket.js.map +1 -0
  245. package/server/applications/notifications/i18n/fr.js +43 -0
  246. package/server/applications/notifications/i18n/fr.js.map +1 -0
  247. package/server/applications/notifications/i18n/index.js +37 -0
  248. package/server/applications/notifications/i18n/index.js.map +1 -0
  249. package/server/applications/notifications/interfaces/notification-properties.interface.js +10 -0
  250. package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -0
  251. package/server/applications/notifications/interfaces/user-mail-notification.js +10 -0
  252. package/server/applications/notifications/interfaces/user-mail-notification.js.map +1 -0
  253. package/server/applications/notifications/mails/models.js +133 -0
  254. package/server/applications/notifications/mails/models.js.map +1 -0
  255. package/server/applications/notifications/mails/templates.js +51 -0
  256. package/server/applications/notifications/mails/templates.js.map +1 -0
  257. package/server/applications/notifications/mails/urls.js +51 -0
  258. package/server/applications/notifications/mails/urls.js.map +1 -0
  259. package/server/applications/notifications/notifications.controller.js +110 -0
  260. package/server/applications/notifications/notifications.controller.js.map +1 -0
  261. package/server/applications/notifications/notifications.controller.spec.js +33 -0
  262. package/server/applications/notifications/notifications.controller.spec.js.map +1 -0
  263. package/server/applications/notifications/notifications.gateway.js +45 -0
  264. package/server/applications/notifications/notifications.gateway.js.map +1 -0
  265. package/server/applications/notifications/notifications.module.js +44 -0
  266. package/server/applications/notifications/notifications.module.js.map +1 -0
  267. package/server/applications/notifications/schemas/notification.interface.js +18 -0
  268. package/server/applications/notifications/schemas/notification.interface.js.map +1 -0
  269. package/server/applications/notifications/schemas/notifications.schema.js +45 -0
  270. package/server/applications/notifications/schemas/notifications.schema.js.map +1 -0
  271. package/server/applications/notifications/services/notifications-manager.service.js +143 -0
  272. package/server/applications/notifications/services/notifications-manager.service.js.map +1 -0
  273. package/server/applications/notifications/services/notifications-manager.service.spec.js +46 -0
  274. package/server/applications/notifications/services/notifications-manager.service.spec.js.map +1 -0
  275. package/server/applications/notifications/services/notifications-queries.service.js +100 -0
  276. package/server/applications/notifications/services/notifications-queries.service.js.map +1 -0
  277. package/server/applications/shares/constants/routes.js +46 -0
  278. package/server/applications/shares/constants/routes.js.map +1 -0
  279. package/server/applications/shares/constants/shares.js +31 -0
  280. package/server/applications/shares/constants/shares.js.map +1 -0
  281. package/server/applications/shares/dto/create-or-update-share.dto.js +232 -0
  282. package/server/applications/shares/dto/create-or-update-share.dto.js.map +1 -0
  283. package/server/applications/shares/interfaces/share-child.interface.js +10 -0
  284. package/server/applications/shares/interfaces/share-child.interface.js.map +1 -0
  285. package/server/applications/shares/interfaces/share-env.interface.js +10 -0
  286. package/server/applications/shares/interfaces/share-env.interface.js.map +1 -0
  287. package/server/applications/shares/interfaces/share-file.interface.js +21 -0
  288. package/server/applications/shares/interfaces/share-file.interface.js.map +1 -0
  289. package/server/applications/shares/interfaces/share-link.interface.js +10 -0
  290. package/server/applications/shares/interfaces/share-link.interface.js.map +1 -0
  291. package/server/applications/shares/interfaces/share-props.interface.js +22 -0
  292. package/server/applications/shares/interfaces/share-props.interface.js.map +1 -0
  293. package/server/applications/shares/models/share-child.model.js +30 -0
  294. package/server/applications/shares/models/share-child.model.js.map +1 -0
  295. package/server/applications/shares/schemas/share-members.interface.js +18 -0
  296. package/server/applications/shares/schemas/share-members.interface.js.map +1 -0
  297. package/server/applications/shares/schemas/share.interface.js +18 -0
  298. package/server/applications/shares/schemas/share.interface.js.map +1 -0
  299. package/server/applications/shares/schemas/shares-members.schema.js +69 -0
  300. package/server/applications/shares/schemas/shares-members.schema.js.map +1 -0
  301. package/server/applications/shares/schemas/shares.schema.js +91 -0
  302. package/server/applications/shares/schemas/shares.schema.js.map +1 -0
  303. package/server/applications/shares/services/shares-manager.service.js +1010 -0
  304. package/server/applications/shares/services/shares-manager.service.js.map +1 -0
  305. package/server/applications/shares/services/shares-manager.service.spec.js +56 -0
  306. package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -0
  307. package/server/applications/shares/services/shares-queries.service.js +892 -0
  308. package/server/applications/shares/services/shares-queries.service.js.map +1 -0
  309. package/server/applications/shares/shares.controller.js +293 -0
  310. package/server/applications/shares/shares.controller.js.map +1 -0
  311. package/server/applications/shares/shares.controller.spec.js +60 -0
  312. package/server/applications/shares/shares.controller.spec.js.map +1 -0
  313. package/server/applications/shares/shares.module.js +49 -0
  314. package/server/applications/shares/shares.module.js.map +1 -0
  315. package/server/applications/spaces/constants/cache.js +32 -0
  316. package/server/applications/spaces/constants/cache.js.map +1 -0
  317. package/server/applications/spaces/constants/routes.js +58 -0
  318. package/server/applications/spaces/constants/routes.js.map +1 -0
  319. package/server/applications/spaces/constants/spaces.js +104 -0
  320. package/server/applications/spaces/constants/spaces.js.map +1 -0
  321. package/server/applications/spaces/decorators/space-skip-guard.decorator.js +27 -0
  322. package/server/applications/spaces/decorators/space-skip-guard.decorator.js.map +1 -0
  323. package/server/applications/spaces/decorators/space-skip-permissions.decorator.js +27 -0
  324. package/server/applications/spaces/decorators/space-skip-permissions.decorator.js.map +1 -0
  325. package/server/applications/spaces/decorators/space.decorator.js +20 -0
  326. package/server/applications/spaces/decorators/space.decorator.js.map +1 -0
  327. package/server/applications/spaces/dto/create-or-update-space.dto.js +164 -0
  328. package/server/applications/spaces/dto/create-or-update-space.dto.js.map +1 -0
  329. package/server/applications/spaces/dto/delete-space.dto.js +33 -0
  330. package/server/applications/spaces/dto/delete-space.dto.js.map +1 -0
  331. package/server/applications/spaces/dto/search-space.dto.js +47 -0
  332. package/server/applications/spaces/dto/search-space.dto.js.map +1 -0
  333. package/server/applications/spaces/dto/space-roots.dto.js +117 -0
  334. package/server/applications/spaces/dto/space-roots.dto.js.map +1 -0
  335. package/server/applications/spaces/guards/space.guard.js +151 -0
  336. package/server/applications/spaces/guards/space.guard.js.map +1 -0
  337. package/server/applications/spaces/guards/space.guard.spec.js +457 -0
  338. package/server/applications/spaces/guards/space.guard.spec.js.map +1 -0
  339. package/server/applications/spaces/interfaces/space-diff.interface.js +10 -0
  340. package/server/applications/spaces/interfaces/space-diff.interface.js.map +1 -0
  341. package/server/applications/spaces/interfaces/space-files.interface.js +10 -0
  342. package/server/applications/spaces/interfaces/space-files.interface.js.map +1 -0
  343. package/server/applications/spaces/interfaces/space-quota.interface.js +10 -0
  344. package/server/applications/spaces/interfaces/space-quota.interface.js.map +1 -0
  345. package/server/applications/spaces/interfaces/space-request.interface.js +10 -0
  346. package/server/applications/spaces/interfaces/space-request.interface.js.map +1 -0
  347. package/server/applications/spaces/interfaces/space-trash.interface.js +10 -0
  348. package/server/applications/spaces/interfaces/space-trash.interface.js.map +1 -0
  349. package/server/applications/spaces/models/space-env.model.js +112 -0
  350. package/server/applications/spaces/models/space-env.model.js.map +1 -0
  351. package/server/applications/spaces/models/space-props.model.js +60 -0
  352. package/server/applications/spaces/models/space-props.model.js.map +1 -0
  353. package/server/applications/spaces/models/space-root-props.model.js +18 -0
  354. package/server/applications/spaces/models/space-root-props.model.js.map +1 -0
  355. package/server/applications/spaces/models/space.model.js +64 -0
  356. package/server/applications/spaces/models/space.model.js.map +1 -0
  357. package/server/applications/spaces/schemas/space-members.interface.js +18 -0
  358. package/server/applications/spaces/schemas/space-members.interface.js.map +1 -0
  359. package/server/applications/spaces/schemas/space-root.interface.js +18 -0
  360. package/server/applications/spaces/schemas/space-root.interface.js.map +1 -0
  361. package/server/applications/spaces/schemas/space.interface.js +18 -0
  362. package/server/applications/spaces/schemas/space.interface.js.map +1 -0
  363. package/server/applications/spaces/schemas/spaces-members.schema.js +73 -0
  364. package/server/applications/spaces/schemas/spaces-members.schema.js.map +1 -0
  365. package/server/applications/spaces/schemas/spaces-roots.schema.js +61 -0
  366. package/server/applications/spaces/schemas/spaces-roots.schema.js.map +1 -0
  367. package/server/applications/spaces/schemas/spaces.schema.js +63 -0
  368. package/server/applications/spaces/schemas/spaces.schema.js.map +1 -0
  369. package/server/applications/spaces/services/spaces-browser.service.js +308 -0
  370. package/server/applications/spaces/services/spaces-browser.service.js.map +1 -0
  371. package/server/applications/spaces/services/spaces-browser.service.spec.js +74 -0
  372. package/server/applications/spaces/services/spaces-browser.service.spec.js.map +1 -0
  373. package/server/applications/spaces/services/spaces-manager.service.js +818 -0
  374. package/server/applications/spaces/services/spaces-manager.service.js.map +1 -0
  375. package/server/applications/spaces/services/spaces-manager.service.spec.js +269 -0
  376. package/server/applications/spaces/services/spaces-manager.service.spec.js.map +1 -0
  377. package/server/applications/spaces/services/spaces-queries.service.js +763 -0
  378. package/server/applications/spaces/services/spaces-queries.service.js.map +1 -0
  379. package/server/applications/spaces/services/spaces-scheduler.service.js +88 -0
  380. package/server/applications/spaces/services/spaces-scheduler.service.js.map +1 -0
  381. package/server/applications/spaces/spaces.controller.js +386 -0
  382. package/server/applications/spaces/spaces.controller.js.map +1 -0
  383. package/server/applications/spaces/spaces.controller.spec.js +65 -0
  384. package/server/applications/spaces/spaces.controller.spec.js.map +1 -0
  385. package/server/applications/spaces/spaces.module.js +51 -0
  386. package/server/applications/spaces/spaces.module.js.map +1 -0
  387. package/server/applications/spaces/utils/paths.js +241 -0
  388. package/server/applications/spaces/utils/paths.js.map +1 -0
  389. package/server/applications/spaces/utils/permissions.js +88 -0
  390. package/server/applications/spaces/utils/permissions.js.map +1 -0
  391. package/server/applications/spaces/utils/routes.js +20 -0
  392. package/server/applications/spaces/utils/routes.js.map +1 -0
  393. package/server/applications/sync/constants/auth.js +38 -0
  394. package/server/applications/sync/constants/auth.js.map +1 -0
  395. package/server/applications/sync/constants/routes.js +47 -0
  396. package/server/applications/sync/constants/routes.js.map +1 -0
  397. package/server/applications/sync/constants/store.js +48 -0
  398. package/server/applications/sync/constants/store.js.map +1 -0
  399. package/server/applications/sync/constants/sync.js +128 -0
  400. package/server/applications/sync/constants/sync.js.map +1 -0
  401. package/server/applications/sync/decorators/sync-context.decorator.js +27 -0
  402. package/server/applications/sync/decorators/sync-context.decorator.js.map +1 -0
  403. package/server/applications/sync/decorators/sync-environment.decorator.js +25 -0
  404. package/server/applications/sync/decorators/sync-environment.decorator.js.map +1 -0
  405. package/server/applications/sync/dtos/sync-client-auth.dto.js +47 -0
  406. package/server/applications/sync/dtos/sync-client-auth.dto.js.map +1 -0
  407. package/server/applications/sync/dtos/sync-client-registration.dto.js +51 -0
  408. package/server/applications/sync/dtos/sync-client-registration.dto.js.map +1 -0
  409. package/server/applications/sync/dtos/sync-operations.dto.js +104 -0
  410. package/server/applications/sync/dtos/sync-operations.dto.js.map +1 -0
  411. package/server/applications/sync/dtos/sync-path.dto.js +130 -0
  412. package/server/applications/sync/dtos/sync-path.dto.js.map +1 -0
  413. package/server/applications/sync/dtos/sync-upload.dto.js +49 -0
  414. package/server/applications/sync/dtos/sync-upload.dto.js.map +1 -0
  415. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js +55 -0
  416. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js.map +1 -0
  417. package/server/applications/sync/interfaces/store-manifest.interface.js +10 -0
  418. package/server/applications/sync/interfaces/store-manifest.interface.js.map +1 -0
  419. package/server/applications/sync/interfaces/sync-client-auth.interface.js +30 -0
  420. package/server/applications/sync/interfaces/sync-client-auth.interface.js.map +1 -0
  421. package/server/applications/sync/interfaces/sync-client-paths.interface.js +10 -0
  422. package/server/applications/sync/interfaces/sync-client-paths.interface.js.map +1 -0
  423. package/server/applications/sync/interfaces/sync-client.interface.js +10 -0
  424. package/server/applications/sync/interfaces/sync-client.interface.js.map +1 -0
  425. package/server/applications/sync/interfaces/sync-diff.interface.js +11 -0
  426. package/server/applications/sync/interfaces/sync-diff.interface.js.map +1 -0
  427. package/server/applications/sync/interfaces/sync-path.interface.js +10 -0
  428. package/server/applications/sync/interfaces/sync-path.interface.js.map +1 -0
  429. package/server/applications/sync/schemas/sync-client.interface.js +18 -0
  430. package/server/applications/sync/schemas/sync-client.interface.js.map +1 -0
  431. package/server/applications/sync/schemas/sync-clients.schema.js +57 -0
  432. package/server/applications/sync/schemas/sync-clients.schema.js.map +1 -0
  433. package/server/applications/sync/schemas/sync-path.interface.js +18 -0
  434. package/server/applications/sync/schemas/sync-path.interface.js.map +1 -0
  435. package/server/applications/sync/schemas/sync-paths.schema.js +76 -0
  436. package/server/applications/sync/schemas/sync-paths.schema.js.map +1 -0
  437. package/server/applications/sync/services/sync-clients-manager.service.js +218 -0
  438. package/server/applications/sync/services/sync-clients-manager.service.js.map +1 -0
  439. package/server/applications/sync/services/sync-clients-manager.service.spec.js +56 -0
  440. package/server/applications/sync/services/sync-clients-manager.service.spec.js.map +1 -0
  441. package/server/applications/sync/services/sync-manager.service.js +299 -0
  442. package/server/applications/sync/services/sync-manager.service.js.map +1 -0
  443. package/server/applications/sync/services/sync-manager.service.spec.js +41 -0
  444. package/server/applications/sync/services/sync-manager.service.spec.js.map +1 -0
  445. package/server/applications/sync/services/sync-paths-manager.service.js +290 -0
  446. package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -0
  447. package/server/applications/sync/services/sync-paths-manager.service.spec.js +56 -0
  448. package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -0
  449. package/server/applications/sync/services/sync-queries.service.js +238 -0
  450. package/server/applications/sync/services/sync-queries.service.js.map +1 -0
  451. package/server/applications/sync/sync.config.js +36 -0
  452. package/server/applications/sync/sync.config.js.map +1 -0
  453. package/server/applications/sync/sync.controller.js +407 -0
  454. package/server/applications/sync/sync.controller.js.map +1 -0
  455. package/server/applications/sync/sync.controller.spec.js +53 -0
  456. package/server/applications/sync/sync.controller.spec.js.map +1 -0
  457. package/server/applications/sync/sync.module.js +45 -0
  458. package/server/applications/sync/sync.module.js.map +1 -0
  459. package/server/applications/sync/utils/functions.js +26 -0
  460. package/server/applications/sync/utils/functions.js.map +1 -0
  461. package/server/applications/sync/utils/normalizedMap.js +52 -0
  462. package/server/applications/sync/utils/normalizedMap.js.map +1 -0
  463. package/server/applications/sync/utils/routes.js +27 -0
  464. package/server/applications/sync/utils/routes.js.map +1 -0
  465. package/server/applications/users/admin-users.controller.js +350 -0
  466. package/server/applications/users/admin-users.controller.js.map +1 -0
  467. package/server/applications/users/admin-users.controller.spec.js +60 -0
  468. package/server/applications/users/admin-users.controller.spec.js.map +1 -0
  469. package/server/applications/users/constants/group.js +35 -0
  470. package/server/applications/users/constants/group.js.map +1 -0
  471. package/server/applications/users/constants/member.js +39 -0
  472. package/server/applications/users/constants/member.js.map +1 -0
  473. package/server/applications/users/constants/routes.js +134 -0
  474. package/server/applications/users/constants/routes.js.map +1 -0
  475. package/server/applications/users/constants/user.js +118 -0
  476. package/server/applications/users/constants/user.js.map +1 -0
  477. package/server/applications/users/constants/websocket.js +33 -0
  478. package/server/applications/users/constants/websocket.js.map +1 -0
  479. package/server/applications/users/decorators/permissions.decorator.js +18 -0
  480. package/server/applications/users/decorators/permissions.decorator.js.map +1 -0
  481. package/server/applications/users/decorators/roles.decorator.js +18 -0
  482. package/server/applications/users/decorators/roles.decorator.js.map +1 -0
  483. package/server/applications/users/decorators/user.decorator.js +20 -0
  484. package/server/applications/users/decorators/user.decorator.js.map +1 -0
  485. package/server/applications/users/dto/create-or-update-group.dto.js +66 -0
  486. package/server/applications/users/dto/create-or-update-group.dto.js.map +1 -0
  487. package/server/applications/users/dto/create-or-update-user.dto.js +167 -0
  488. package/server/applications/users/dto/create-or-update-user.dto.js.map +1 -0
  489. package/server/applications/users/dto/delete-user.dto.js +54 -0
  490. package/server/applications/users/dto/delete-user.dto.js.map +1 -0
  491. package/server/applications/users/dto/search-members.dto.js +79 -0
  492. package/server/applications/users/dto/search-members.dto.js.map +1 -0
  493. package/server/applications/users/dto/user-password.dto.js +35 -0
  494. package/server/applications/users/dto/user-password.dto.js.map +1 -0
  495. package/server/applications/users/dto/user-properties.dto.js +64 -0
  496. package/server/applications/users/dto/user-properties.dto.js.map +1 -0
  497. package/server/applications/users/guards/permissions.guard.js +71 -0
  498. package/server/applications/users/guards/permissions.guard.js.map +1 -0
  499. package/server/applications/users/guards/permissions.guard.spec.js +103 -0
  500. package/server/applications/users/guards/permissions.guard.spec.js.map +1 -0
  501. package/server/applications/users/guards/roles.guard.js +62 -0
  502. package/server/applications/users/guards/roles.guard.js.map +1 -0
  503. package/server/applications/users/guards/roles.guard.spec.js +90 -0
  504. package/server/applications/users/guards/roles.guard.spec.js.map +1 -0
  505. package/server/applications/users/interfaces/admin-group.interface.js +10 -0
  506. package/server/applications/users/interfaces/admin-group.interface.js.map +1 -0
  507. package/server/applications/users/interfaces/admin-user.interface.js +10 -0
  508. package/server/applications/users/interfaces/admin-user.interface.js.map +1 -0
  509. package/server/applications/users/interfaces/group-browse.interface.js +10 -0
  510. package/server/applications/users/interfaces/group-browse.interface.js.map +1 -0
  511. package/server/applications/users/interfaces/group-member.js +10 -0
  512. package/server/applications/users/interfaces/group-member.js.map +1 -0
  513. package/server/applications/users/interfaces/guest-user.interface.js +10 -0
  514. package/server/applications/users/interfaces/guest-user.interface.js.map +1 -0
  515. package/server/applications/users/interfaces/member.interface.js +10 -0
  516. package/server/applications/users/interfaces/member.interface.js.map +1 -0
  517. package/server/applications/users/interfaces/owner.interface.js +10 -0
  518. package/server/applications/users/interfaces/owner.interface.js.map +1 -0
  519. package/server/applications/users/interfaces/websocket.interface.js +10 -0
  520. package/server/applications/users/interfaces/websocket.interface.js.map +1 -0
  521. package/server/applications/users/models/user.model.js +226 -0
  522. package/server/applications/users/models/user.model.js.map +1 -0
  523. package/server/applications/users/schemas/group.interface.js +18 -0
  524. package/server/applications/users/schemas/group.interface.js.map +1 -0
  525. package/server/applications/users/schemas/groups.schema.js +56 -0
  526. package/server/applications/users/schemas/groups.schema.js.map +1 -0
  527. package/server/applications/users/schemas/user-group.interface.js +18 -0
  528. package/server/applications/users/schemas/user-group.interface.js.map +1 -0
  529. package/server/applications/users/schemas/user.interface.js +18 -0
  530. package/server/applications/users/schemas/user.interface.js.map +1 -0
  531. package/server/applications/users/schemas/users-groups.schema.js +49 -0
  532. package/server/applications/users/schemas/users-groups.schema.js.map +1 -0
  533. package/server/applications/users/schemas/users-guests.schema.js +46 -0
  534. package/server/applications/users/schemas/users-guests.schema.js.map +1 -0
  535. package/server/applications/users/schemas/users.schema.js +94 -0
  536. package/server/applications/users/schemas/users.schema.js.map +1 -0
  537. package/server/applications/users/services/admin-users-manager.service.js +385 -0
  538. package/server/applications/users/services/admin-users-manager.service.js.map +1 -0
  539. package/server/applications/users/services/admin-users-manager.service.spec.js +50 -0
  540. package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -0
  541. package/server/applications/users/services/admin-users-queries.service.js +315 -0
  542. package/server/applications/users/services/admin-users-queries.service.js.map +1 -0
  543. package/server/applications/users/services/users-manager.service.js +424 -0
  544. package/server/applications/users/services/users-manager.service.js.map +1 -0
  545. package/server/applications/users/services/users-manager.service.spec.js +151 -0
  546. package/server/applications/users/services/users-manager.service.spec.js.map +1 -0
  547. package/server/applications/users/services/users-queries.service.js +570 -0
  548. package/server/applications/users/services/users-queries.service.js.map +1 -0
  549. package/server/applications/users/users.controller.js +371 -0
  550. package/server/applications/users/users.controller.js.map +1 -0
  551. package/server/applications/users/users.controller.spec.js +86 -0
  552. package/server/applications/users/users.controller.spec.js.map +1 -0
  553. package/server/applications/users/users.e2e-spec.js +97 -0
  554. package/server/applications/users/users.e2e-spec.js.map +1 -0
  555. package/server/applications/users/users.gateway.js +182 -0
  556. package/server/applications/users/users.gateway.js.map +1 -0
  557. package/server/applications/users/users.gateway.spec.js +36 -0
  558. package/server/applications/users/users.gateway.spec.js.map +1 -0
  559. package/server/applications/users/users.module.js +57 -0
  560. package/server/applications/users/users.module.js.map +1 -0
  561. package/server/applications/users/utils/test.js +34 -0
  562. package/server/applications/users/utils/test.js.map +1 -0
  563. package/server/applications/webdav/constants/routes.js +73 -0
  564. package/server/applications/webdav/constants/routes.js.map +1 -0
  565. package/server/applications/webdav/constants/webdav.js +168 -0
  566. package/server/applications/webdav/constants/webdav.js.map +1 -0
  567. package/server/applications/webdav/decorators/if-header.decorator.js +27 -0
  568. package/server/applications/webdav/decorators/if-header.decorator.js.map +1 -0
  569. package/server/applications/webdav/decorators/webdav-context.decorator.js +36 -0
  570. package/server/applications/webdav/decorators/webdav-context.decorator.js.map +1 -0
  571. package/server/applications/webdav/filters/webdav.filter.js +45 -0
  572. package/server/applications/webdav/filters/webdav.filter.js.map +1 -0
  573. package/server/applications/webdav/guards/webdav-protocol.guard.js +262 -0
  574. package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -0
  575. package/server/applications/webdav/interfaces/if-header.interface.js +10 -0
  576. package/server/applications/webdav/interfaces/if-header.interface.js.map +1 -0
  577. package/server/applications/webdav/interfaces/webdav.interface.js +10 -0
  578. package/server/applications/webdav/interfaces/webdav.interface.js.map +1 -0
  579. package/server/applications/webdav/models/webdav-file.model.js +74 -0
  580. package/server/applications/webdav/models/webdav-file.model.js.map +1 -0
  581. package/server/applications/webdav/services/webdav-methods.service.js +520 -0
  582. package/server/applications/webdav/services/webdav-methods.service.js.map +1 -0
  583. package/server/applications/webdav/services/webdav-methods.service.spec.js +41 -0
  584. package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -0
  585. package/server/applications/webdav/services/webdav-spaces.service.js +169 -0
  586. package/server/applications/webdav/services/webdav-spaces.service.js.map +1 -0
  587. package/server/applications/webdav/services/webdav-spaces.service.spec.js +36 -0
  588. package/server/applications/webdav/services/webdav-spaces.service.spec.js.map +1 -0
  589. package/server/applications/webdav/utils/if-header.js +89 -0
  590. package/server/applications/webdav/utils/if-header.js.map +1 -0
  591. package/server/applications/webdav/utils/routes.js +30 -0
  592. package/server/applications/webdav/utils/routes.js.map +1 -0
  593. package/server/applications/webdav/utils/webdav.js +167 -0
  594. package/server/applications/webdav/utils/webdav.js.map +1 -0
  595. package/server/applications/webdav/utils/xml.js +72 -0
  596. package/server/applications/webdav/utils/xml.js.map +1 -0
  597. package/server/applications/webdav/webdav.controller.js +173 -0
  598. package/server/applications/webdav/webdav.controller.js.map +1 -0
  599. package/server/applications/webdav/webdav.controller.spec.js +41 -0
  600. package/server/applications/webdav/webdav.controller.spec.js.map +1 -0
  601. package/server/applications/webdav/webdav.e2e-spec.js +69 -0
  602. package/server/applications/webdav/webdav.e2e-spec.js.map +1 -0
  603. package/server/applications/webdav/webdav.module.js +41 -0
  604. package/server/applications/webdav/webdav.module.js.map +1 -0
  605. package/server/authentication/auth.config.js +223 -0
  606. package/server/authentication/auth.config.js.map +1 -0
  607. package/server/authentication/auth.controller.js +126 -0
  608. package/server/authentication/auth.controller.js.map +1 -0
  609. package/server/authentication/auth.controller.spec.js +132 -0
  610. package/server/authentication/auth.controller.spec.js.map +1 -0
  611. package/server/authentication/auth.e2e-spec.js +340 -0
  612. package/server/authentication/auth.e2e-spec.js.map +1 -0
  613. package/server/authentication/auth.module.js +84 -0
  614. package/server/authentication/auth.module.js.map +1 -0
  615. package/server/authentication/constants/auth.js +54 -0
  616. package/server/authentication/constants/auth.js.map +1 -0
  617. package/server/authentication/constants/routes.js +55 -0
  618. package/server/authentication/constants/routes.js.map +1 -0
  619. package/server/authentication/decorators/auth-token-optional.decorator.js +26 -0
  620. package/server/authentication/decorators/auth-token-optional.decorator.js.map +1 -0
  621. package/server/authentication/decorators/auth-token-skip.decorator.js +27 -0
  622. package/server/authentication/decorators/auth-token-skip.decorator.js.map +1 -0
  623. package/server/authentication/dto/login-response.dto.js +23 -0
  624. package/server/authentication/dto/login-response.dto.js.map +1 -0
  625. package/server/authentication/dto/token-response.dto.js +44 -0
  626. package/server/authentication/dto/token-response.dto.js.map +1 -0
  627. package/server/authentication/guards/auth-anonymous.guard.js +37 -0
  628. package/server/authentication/guards/auth-anonymous.guard.js.map +1 -0
  629. package/server/authentication/guards/auth-anonymous.guard.spec.js +65 -0
  630. package/server/authentication/guards/auth-anonymous.guard.spec.js.map +1 -0
  631. package/server/authentication/guards/auth-anonymous.strategy.js +44 -0
  632. package/server/authentication/guards/auth-anonymous.strategy.js.map +1 -0
  633. package/server/authentication/guards/auth-basic.guard.js +54 -0
  634. package/server/authentication/guards/auth-basic.guard.js.map +1 -0
  635. package/server/authentication/guards/auth-basic.guard.spec.js +148 -0
  636. package/server/authentication/guards/auth-basic.guard.spec.js.map +1 -0
  637. package/server/authentication/guards/auth-basic.strategy.js +79 -0
  638. package/server/authentication/guards/auth-basic.strategy.js.map +1 -0
  639. package/server/authentication/guards/auth-digest.guard.js +24 -0
  640. package/server/authentication/guards/auth-digest.guard.js.map +1 -0
  641. package/server/authentication/guards/auth-digest.strategy.js +28 -0
  642. package/server/authentication/guards/auth-digest.strategy.js.map +1 -0
  643. package/server/authentication/guards/auth-local.guard.js +40 -0
  644. package/server/authentication/guards/auth-local.guard.js.map +1 -0
  645. package/server/authentication/guards/auth-local.guard.spec.js +87 -0
  646. package/server/authentication/guards/auth-local.guard.spec.js.map +1 -0
  647. package/server/authentication/guards/auth-local.strategy.js +59 -0
  648. package/server/authentication/guards/auth-local.strategy.js.map +1 -0
  649. package/server/authentication/guards/auth-token-access.guard.js +66 -0
  650. package/server/authentication/guards/auth-token-access.guard.js.map +1 -0
  651. package/server/authentication/guards/auth-token-access.guard.spec.js +262 -0
  652. package/server/authentication/guards/auth-token-access.guard.spec.js.map +1 -0
  653. package/server/authentication/guards/auth-token-access.strategy.js +68 -0
  654. package/server/authentication/guards/auth-token-access.strategy.js.map +1 -0
  655. package/server/authentication/guards/auth-token-refresh.guard.js +40 -0
  656. package/server/authentication/guards/auth-token-refresh.guard.js.map +1 -0
  657. package/server/authentication/guards/auth-token-refresh.guard.spec.js +189 -0
  658. package/server/authentication/guards/auth-token-refresh.guard.spec.js.map +1 -0
  659. package/server/authentication/guards/auth-token-refresh.strategy.js +72 -0
  660. package/server/authentication/guards/auth-token-refresh.strategy.js.map +1 -0
  661. package/server/authentication/interfaces/auth-request.interface.js +10 -0
  662. package/server/authentication/interfaces/auth-request.interface.js.map +1 -0
  663. package/server/authentication/interfaces/jwt-payload.interface.js +28 -0
  664. package/server/authentication/interfaces/jwt-payload.interface.js.map +1 -0
  665. package/server/authentication/interfaces/token.interface.js +23 -0
  666. package/server/authentication/interfaces/token.interface.js.map +1 -0
  667. package/server/authentication/models/auth-method.js +18 -0
  668. package/server/authentication/models/auth-method.js.map +1 -0
  669. package/server/authentication/services/auth-manager.service.js +174 -0
  670. package/server/authentication/services/auth-manager.service.js.map +1 -0
  671. package/server/authentication/services/auth-manager.service.spec.js +41 -0
  672. package/server/authentication/services/auth-manager.service.spec.js.map +1 -0
  673. package/server/authentication/services/auth-methods/auth-method-database.service.js +55 -0
  674. package/server/authentication/services/auth-methods/auth-method-database.service.js.map +1 -0
  675. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js +88 -0
  676. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +1 -0
  677. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +185 -0
  678. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +1 -0
  679. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +36 -0
  680. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +1 -0
  681. package/server/common/constants.js +23 -0
  682. package/server/common/constants.js.map +1 -0
  683. package/server/common/decorators.js +35 -0
  684. package/server/common/decorators.js.map +1 -0
  685. package/server/common/fonts/avatar.ttf +0 -0
  686. package/server/common/functions.js +292 -0
  687. package/server/common/functions.js.map +1 -0
  688. package/server/common/image.js +113 -0
  689. package/server/common/image.js.map +1 -0
  690. package/server/common/interfaces.js +10 -0
  691. package/server/common/interfaces.js.map +1 -0
  692. package/server/common/shared.js +105 -0
  693. package/server/common/shared.js.map +1 -0
  694. package/server/configuration/config.constants.js +65 -0
  695. package/server/configuration/config.constants.js.map +1 -0
  696. package/server/configuration/config.environment.js +57 -0
  697. package/server/configuration/config.environment.js.map +1 -0
  698. package/server/configuration/config.loader.js +195 -0
  699. package/server/configuration/config.loader.js.map +1 -0
  700. package/server/configuration/config.logger.js +69 -0
  701. package/server/configuration/config.logger.js.map +1 -0
  702. package/server/configuration/config.validation.js +175 -0
  703. package/server/configuration/config.validation.js.map +1 -0
  704. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js +169 -0
  705. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js.map +1 -0
  706. package/server/infrastructure/cache/adapters/redis-cache.adapter.js +129 -0
  707. package/server/infrastructure/cache/adapters/redis-cache.adapter.js.map +1 -0
  708. package/server/infrastructure/cache/cache.config.js +53 -0
  709. package/server/infrastructure/cache/cache.config.js.map +1 -0
  710. package/server/infrastructure/cache/cache.decorator.js +53 -0
  711. package/server/infrastructure/cache/cache.decorator.js.map +1 -0
  712. package/server/infrastructure/cache/cache.e2e-spec.js +111 -0
  713. package/server/infrastructure/cache/cache.e2e-spec.js.map +1 -0
  714. package/server/infrastructure/cache/cache.module.js +58 -0
  715. package/server/infrastructure/cache/cache.module.js.map +1 -0
  716. package/server/infrastructure/cache/schemas/mysql-cache.interface.js +18 -0
  717. package/server/infrastructure/cache/schemas/mysql-cache.interface.js.map +1 -0
  718. package/server/infrastructure/cache/schemas/mysql-cache.schema.js +26 -0
  719. package/server/infrastructure/cache/schemas/mysql-cache.schema.js.map +1 -0
  720. package/server/infrastructure/cache/services/cache.service.js +18 -0
  721. package/server/infrastructure/cache/services/cache.service.js.map +1 -0
  722. package/server/infrastructure/context/context.module.js +40 -0
  723. package/server/infrastructure/context/context.module.js.map +1 -0
  724. package/server/infrastructure/context/interceptors/context.interceptor.js +45 -0
  725. package/server/infrastructure/context/interceptors/context.interceptor.js.map +1 -0
  726. package/server/infrastructure/context/interfaces/context-store.interface.js +10 -0
  727. package/server/infrastructure/context/interfaces/context-store.interface.js.map +1 -0
  728. package/server/infrastructure/context/services/context-manager.service.js +43 -0
  729. package/server/infrastructure/context/services/context-manager.service.js.map +1 -0
  730. package/server/infrastructure/database/configuration.js +29 -0
  731. package/server/infrastructure/database/configuration.js.map +1 -0
  732. package/server/infrastructure/database/constants.js +41 -0
  733. package/server/infrastructure/database/constants.js.map +1 -0
  734. package/server/infrastructure/database/database.config.js +44 -0
  735. package/server/infrastructure/database/database.config.js.map +1 -0
  736. package/server/infrastructure/database/database.logger.js +22 -0
  737. package/server/infrastructure/database/database.logger.js.map +1 -0
  738. package/server/infrastructure/database/database.module.js +94 -0
  739. package/server/infrastructure/database/database.module.js.map +1 -0
  740. package/server/infrastructure/database/interfaces/database.interface.js +10 -0
  741. package/server/infrastructure/database/interfaces/database.interface.js.map +1 -0
  742. package/server/infrastructure/database/schema.js +40 -0
  743. package/server/infrastructure/database/schema.js.map +1 -0
  744. package/server/infrastructure/database/scripts/create-user.js +97 -0
  745. package/server/infrastructure/database/scripts/create-user.js.map +1 -0
  746. package/server/infrastructure/database/scripts/db.js +68 -0
  747. package/server/infrastructure/database/scripts/db.js.map +1 -0
  748. package/server/infrastructure/database/scripts/seed/main.js +18 -0
  749. package/server/infrastructure/database/scripts/seed/main.js.map +1 -0
  750. package/server/infrastructure/database/scripts/seed/usersgroups.js +92 -0
  751. package/server/infrastructure/database/scripts/seed/usersgroups.js.map +1 -0
  752. package/server/infrastructure/database/utils.js +117 -0
  753. package/server/infrastructure/database/utils.js.map +1 -0
  754. package/server/infrastructure/mailer/interfaces/mail.interface.js +10 -0
  755. package/server/infrastructure/mailer/interfaces/mail.interface.js.map +1 -0
  756. package/server/infrastructure/mailer/mailer.config.js +94 -0
  757. package/server/infrastructure/mailer/mailer.config.js.map +1 -0
  758. package/server/infrastructure/mailer/mailer.module.js +37 -0
  759. package/server/infrastructure/mailer/mailer.module.js.map +1 -0
  760. package/server/infrastructure/mailer/mailer.service.js +93 -0
  761. package/server/infrastructure/mailer/mailer.service.js.map +1 -0
  762. package/server/infrastructure/scheduler/scheduler.constants.js +30 -0
  763. package/server/infrastructure/scheduler/scheduler.constants.js.map +1 -0
  764. package/server/infrastructure/scheduler/scheduler.module.js +52 -0
  765. package/server/infrastructure/scheduler/scheduler.module.js.map +1 -0
  766. package/server/infrastructure/websocket/adapters/cluster.adapter.js +40 -0
  767. package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -0
  768. package/server/infrastructure/websocket/adapters/redis.adapter.js +61 -0
  769. package/server/infrastructure/websocket/adapters/redis.adapter.js.map +1 -0
  770. package/server/infrastructure/websocket/adapters/web-socket.adapter.js +127 -0
  771. package/server/infrastructure/websocket/adapters/web-socket.adapter.js.map +1 -0
  772. package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js +20 -0
  773. package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js.map +1 -0
  774. package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js +10 -0
  775. package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js.map +1 -0
  776. package/server/infrastructure/websocket/utils.js +23 -0
  777. package/server/infrastructure/websocket/utils.js.map +1 -0
  778. package/server/infrastructure/websocket/web-socket.config.js +54 -0
  779. package/server/infrastructure/websocket/web-socket.config.js.map +1 -0
  780. package/server/main.js +27 -0
  781. package/server/main.js.map +1 -0
  782. package/static/3rdpartylicenses.txt +1522 -0
  783. package/static/assets/avatar.svg +7 -0
  784. package/static/assets/codemirror/mode/apl/apl.js +174 -0
  785. package/static/assets/codemirror/mode/asciiarmor/asciiarmor.js +74 -0
  786. package/static/assets/codemirror/mode/asn.1/asn.1.js +204 -0
  787. package/static/assets/codemirror/mode/asterisk/asterisk.js +220 -0
  788. package/static/assets/codemirror/mode/brainfuck/brainfuck.js +85 -0
  789. package/static/assets/codemirror/mode/clike/clike.js +942 -0
  790. package/static/assets/codemirror/mode/clojure/clojure.js +293 -0
  791. package/static/assets/codemirror/mode/cmake/cmake.js +97 -0
  792. package/static/assets/codemirror/mode/cobol/cobol.js +255 -0
  793. package/static/assets/codemirror/mode/coffeescript/coffeescript.js +359 -0
  794. package/static/assets/codemirror/mode/commonlisp/commonlisp.js +125 -0
  795. package/static/assets/codemirror/mode/crystal/crystal.js +433 -0
  796. package/static/assets/codemirror/mode/css/css.js +862 -0
  797. package/static/assets/codemirror/mode/cypher/cypher.js +152 -0
  798. package/static/assets/codemirror/mode/d/d.js +223 -0
  799. package/static/assets/codemirror/mode/dart/dart.js +168 -0
  800. package/static/assets/codemirror/mode/diff/diff.js +47 -0
  801. package/static/assets/codemirror/mode/django/django.js +356 -0
  802. package/static/assets/codemirror/mode/dockerfile/dockerfile.js +211 -0
  803. package/static/assets/codemirror/mode/dtd/dtd.js +142 -0
  804. package/static/assets/codemirror/mode/dylan/dylan.js +352 -0
  805. package/static/assets/codemirror/mode/ebnf/ebnf.js +195 -0
  806. package/static/assets/codemirror/mode/ecl/ecl.js +206 -0
  807. package/static/assets/codemirror/mode/eiffel/eiffel.js +160 -0
  808. package/static/assets/codemirror/mode/elm/elm.js +245 -0
  809. package/static/assets/codemirror/mode/erlang/erlang.js +619 -0
  810. package/static/assets/codemirror/mode/factor/factor.js +85 -0
  811. package/static/assets/codemirror/mode/fcl/fcl.js +173 -0
  812. package/static/assets/codemirror/mode/forth/forth.js +180 -0
  813. package/static/assets/codemirror/mode/fortran/fortran.js +188 -0
  814. package/static/assets/codemirror/mode/gas/gas.js +353 -0
  815. package/static/assets/codemirror/mode/gfm/gfm.js +129 -0
  816. package/static/assets/codemirror/mode/gherkin/gherkin.js +194 -0
  817. package/static/assets/codemirror/mode/go/go.js +187 -0
  818. package/static/assets/codemirror/mode/groovy/groovy.js +245 -0
  819. package/static/assets/codemirror/mode/haml/haml.js +161 -0
  820. package/static/assets/codemirror/mode/handlebars/handlebars.js +70 -0
  821. package/static/assets/codemirror/mode/haskell/haskell.js +268 -0
  822. package/static/assets/codemirror/mode/haskell-literate/haskell-literate.js +43 -0
  823. package/static/assets/codemirror/mode/haxe/haxe.js +515 -0
  824. package/static/assets/codemirror/mode/htmlembedded/htmlembedded.js +37 -0
  825. package/static/assets/codemirror/mode/htmlmixed/htmlmixed.js +153 -0
  826. package/static/assets/codemirror/mode/http/http.js +113 -0
  827. package/static/assets/codemirror/mode/idl/idl.js +290 -0
  828. package/static/assets/codemirror/mode/javascript/javascript.js +960 -0
  829. package/static/assets/codemirror/mode/jinja2/jinja2.js +193 -0
  830. package/static/assets/codemirror/mode/jsx/jsx.js +149 -0
  831. package/static/assets/codemirror/mode/julia/julia.js +390 -0
  832. package/static/assets/codemirror/mode/livescript/livescript.js +280 -0
  833. package/static/assets/codemirror/mode/lua/lua.js +160 -0
  834. package/static/assets/codemirror/mode/markdown/markdown.js +886 -0
  835. package/static/assets/codemirror/mode/mathematica/mathematica.js +176 -0
  836. package/static/assets/codemirror/mode/mbox/mbox.js +129 -0
  837. package/static/assets/codemirror/mode/meta.js +221 -0
  838. package/static/assets/codemirror/mode/mirc/mirc.js +193 -0
  839. package/static/assets/codemirror/mode/mllike/mllike.js +359 -0
  840. package/static/assets/codemirror/mode/modelica/modelica.js +245 -0
  841. package/static/assets/codemirror/mode/mscgen/mscgen.js +175 -0
  842. package/static/assets/codemirror/mode/mumps/mumps.js +148 -0
  843. package/static/assets/codemirror/mode/nginx/nginx.js +178 -0
  844. package/static/assets/codemirror/mode/nsis/nsis.js +95 -0
  845. package/static/assets/codemirror/mode/ntriples/ntriples.js +195 -0
  846. package/static/assets/codemirror/mode/octave/octave.js +139 -0
  847. package/static/assets/codemirror/mode/oz/oz.js +252 -0
  848. package/static/assets/codemirror/mode/pascal/pascal.js +136 -0
  849. package/static/assets/codemirror/mode/pegjs/pegjs.js +111 -0
  850. package/static/assets/codemirror/mode/perl/perl.js +836 -0
  851. package/static/assets/codemirror/mode/php/php.js +234 -0
  852. package/static/assets/codemirror/mode/pig/pig.js +178 -0
  853. package/static/assets/codemirror/mode/powershell/powershell.js +398 -0
  854. package/static/assets/codemirror/mode/properties/properties.js +78 -0
  855. package/static/assets/codemirror/mode/protobuf/protobuf.js +72 -0
  856. package/static/assets/codemirror/mode/pug/pug.js +591 -0
  857. package/static/assets/codemirror/mode/puppet/puppet.js +220 -0
  858. package/static/assets/codemirror/mode/python/python.js +402 -0
  859. package/static/assets/codemirror/mode/q/q.js +139 -0
  860. package/static/assets/codemirror/mode/r/r.js +190 -0
  861. package/static/assets/codemirror/mode/rpm/changes/index.html +66 -0
  862. package/static/assets/codemirror/mode/rpm/rpm.js +109 -0
  863. package/static/assets/codemirror/mode/rst/rst.js +557 -0
  864. package/static/assets/codemirror/mode/ruby/ruby.js +303 -0
  865. package/static/assets/codemirror/mode/rust/rust.js +72 -0
  866. package/static/assets/codemirror/mode/sas/sas.js +303 -0
  867. package/static/assets/codemirror/mode/sass/sass.js +459 -0
  868. package/static/assets/codemirror/mode/scheme/scheme.js +284 -0
  869. package/static/assets/codemirror/mode/shell/shell.js +168 -0
  870. package/static/assets/codemirror/mode/sieve/sieve.js +193 -0
  871. package/static/assets/codemirror/mode/slim/slim.js +575 -0
  872. package/static/assets/codemirror/mode/smalltalk/smalltalk.js +168 -0
  873. package/static/assets/codemirror/mode/smarty/smarty.js +225 -0
  874. package/static/assets/codemirror/mode/solr/solr.js +104 -0
  875. package/static/assets/codemirror/mode/soy/soy.js +665 -0
  876. package/static/assets/codemirror/mode/sparql/sparql.js +184 -0
  877. package/static/assets/codemirror/mode/spreadsheet/spreadsheet.js +112 -0
  878. package/static/assets/codemirror/mode/sql/sql.js +529 -0
  879. package/static/assets/codemirror/mode/stex/stex.js +264 -0
  880. package/static/assets/codemirror/mode/stylus/stylus.js +775 -0
  881. package/static/assets/codemirror/mode/swift/swift.js +221 -0
  882. package/static/assets/codemirror/mode/tcl/tcl.js +140 -0
  883. package/static/assets/codemirror/mode/textile/textile.js +469 -0
  884. package/static/assets/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  885. package/static/assets/codemirror/mode/tiddlywiki/tiddlywiki.js +308 -0
  886. package/static/assets/codemirror/mode/tiki/tiki.css +26 -0
  887. package/static/assets/codemirror/mode/tiki/tiki.js +312 -0
  888. package/static/assets/codemirror/mode/toml/toml.js +88 -0
  889. package/static/assets/codemirror/mode/tornado/tornado.js +68 -0
  890. package/static/assets/codemirror/mode/troff/troff.js +84 -0
  891. package/static/assets/codemirror/mode/ttcn/ttcn.js +283 -0
  892. package/static/assets/codemirror/mode/ttcn-cfg/ttcn-cfg.js +214 -0
  893. package/static/assets/codemirror/mode/turtle/turtle.js +162 -0
  894. package/static/assets/codemirror/mode/twig/twig.js +141 -0
  895. package/static/assets/codemirror/mode/vb/vb.js +275 -0
  896. package/static/assets/codemirror/mode/vbscript/vbscript.js +350 -0
  897. package/static/assets/codemirror/mode/velocity/velocity.js +202 -0
  898. package/static/assets/codemirror/mode/verilog/verilog.js +781 -0
  899. package/static/assets/codemirror/mode/vhdl/vhdl.js +189 -0
  900. package/static/assets/codemirror/mode/vue/vue.js +77 -0
  901. package/static/assets/codemirror/mode/wast/wast.js +132 -0
  902. package/static/assets/codemirror/mode/webidl/webidl.js +195 -0
  903. package/static/assets/codemirror/mode/xml/xml.js +417 -0
  904. package/static/assets/codemirror/mode/xquery/xquery.js +448 -0
  905. package/static/assets/codemirror/mode/yacas/yacas.js +204 -0
  906. package/static/assets/codemirror/mode/yaml/yaml.js +120 -0
  907. package/static/assets/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +72 -0
  908. package/static/assets/codemirror/mode/z80/z80.js +116 -0
  909. package/static/assets/favicon.svg +25 -0
  910. package/static/assets/logo-dark.svg +32 -0
  911. package/static/assets/logo.svg +32 -0
  912. package/static/assets/mimes/7zip.svg +14 -0
  913. package/static/assets/mimes/application-7zip.svg +14 -0
  914. package/static/assets/mimes/application-atom+xml.svg +15 -0
  915. package/static/assets/mimes/application-atom.svg +15 -0
  916. package/static/assets/mimes/application-certificate.svg +28 -0
  917. package/static/assets/mimes/application-epub+zip.svg +10 -0
  918. package/static/assets/mimes/application-gzip.svg +16 -0
  919. package/static/assets/mimes/application-javascript.svg +6 -0
  920. package/static/assets/mimes/application-json.svg +11 -0
  921. package/static/assets/mimes/application-mathml+xml.svg +188 -0
  922. package/static/assets/mimes/application-mp4.svg +18 -0
  923. package/static/assets/mimes/application-msexcel.svg +1 -0
  924. package/static/assets/mimes/application-msword-template.svg +1 -0
  925. package/static/assets/mimes/application-msword.svg +1 -0
  926. package/static/assets/mimes/application-octet-stream.svg +273 -0
  927. package/static/assets/mimes/application-pdf.svg +13 -0
  928. package/static/assets/mimes/application-pgp-encrypted.svg +16 -0
  929. package/static/assets/mimes/application-pgp-keys.svg +16 -0
  930. package/static/assets/mimes/application-pgp-signature.svg +16 -0
  931. package/static/assets/mimes/application-pgp.svg +16 -0
  932. package/static/assets/mimes/application-postscript.svg +57 -0
  933. package/static/assets/mimes/application-powerpoint.svg +1 -0
  934. package/static/assets/mimes/application-rdf+xml.svg +14 -0
  935. package/static/assets/mimes/application-rss+xml.svg +15 -0
  936. package/static/assets/mimes/application-rtf.svg +14 -0
  937. package/static/assets/mimes/application-script-blank.svg +15 -0
  938. package/static/assets/mimes/application-sql.svg +1 -0
  939. package/static/assets/mimes/application-text.svg +14 -0
  940. package/static/assets/mimes/application-vnd.android.package-archive.svg +16 -0
  941. package/static/assets/mimes/application-vnd.apple.keynote.svg +16 -0
  942. package/static/assets/mimes/application-vnd.apple.numbers.svg +16 -0
  943. package/static/assets/mimes/application-vnd.apple.pages.svg +16 -0
  944. package/static/assets/mimes/application-vnd.ms-excel.sheet.binary.macroenabled.12.svg +1 -0
  945. package/static/assets/mimes/application-vnd.ms-excel.sheet.macroenabled.12.svg +1 -0
  946. package/static/assets/mimes/application-vnd.ms-excel.svg +1 -0
  947. package/static/assets/mimes/application-vnd.ms-excel.template.macroenabled.12.svg +1 -0
  948. package/static/assets/mimes/application-vnd.ms-powerpoint.presentation.macroenabled.12.svg +1 -0
  949. package/static/assets/mimes/application-vnd.ms-powerpoint.svg +1 -0
  950. package/static/assets/mimes/application-vnd.ms-powerpoint.template.macroenabled.12.svg +1 -0
  951. package/static/assets/mimes/application-vnd.ms-word.document.macroenabled.12.svg +1 -0
  952. package/static/assets/mimes/application-vnd.ms-word.svg +1 -0
  953. package/static/assets/mimes/application-vnd.ms-word.template.macroenabled.12.svg +1 -0
  954. package/static/assets/mimes/application-vnd.mspowerpoint.svg +1 -0
  955. package/static/assets/mimes/application-vnd.oasis.opendocument.chart.svg +1 -0
  956. package/static/assets/mimes/application-vnd.oasis.opendocument.database.svg +155 -0
  957. package/static/assets/mimes/application-vnd.oasis.opendocument.formula-template.svg +263 -0
  958. package/static/assets/mimes/application-vnd.oasis.opendocument.formula.svg +188 -0
  959. package/static/assets/mimes/application-vnd.oasis.opendocument.graphics-template.svg +530 -0
  960. package/static/assets/mimes/application-vnd.oasis.opendocument.graphics.svg +89 -0
  961. package/static/assets/mimes/application-vnd.oasis.opendocument.presentation-template.svg +197 -0
  962. package/static/assets/mimes/application-vnd.oasis.opendocument.presentation.svg +122 -0
  963. package/static/assets/mimes/application-vnd.oasis.opendocument.spreadsheet-template.svg +452 -0
  964. package/static/assets/mimes/application-vnd.oasis.opendocument.spreadsheet.svg +266 -0
  965. package/static/assets/mimes/application-vnd.oasis.opendocument.text-master.svg +92 -0
  966. package/static/assets/mimes/application-vnd.oasis.opendocument.text-template.svg +90 -0
  967. package/static/assets/mimes/application-vnd.oasis.opendocument.text-web.svg +18 -0
  968. package/static/assets/mimes/application-vnd.oasis.opendocument.text.svg +92 -0
  969. package/static/assets/mimes/application-vnd.openofficeorg.extension.svg +59 -0
  970. package/static/assets/mimes/application-vnd.openxmlformats-officedocument.presentationml.presentation.svg +1 -0
  971. package/static/assets/mimes/application-vnd.openxmlformats-officedocument.presentationml.slideshow.svg +1 -0
  972. package/static/assets/mimes/application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.svg +1 -0
  973. package/static/assets/mimes/application-vnd.openxmlformats-officedocument.spreadsheetml.template.svg +1 -0
  974. package/static/assets/mimes/application-vnd.openxmlformats-officedocument.wordprocessingml.document.svg +1 -0
  975. package/static/assets/mimes/application-vnd.openxmlformats-officedocument.wordprocessingml.template.svg +1 -0
  976. package/static/assets/mimes/application-vnd.rn-realmedia.svg +18 -0
  977. package/static/assets/mimes/application-vnd.sun.xml.calc.svg +1 -0
  978. package/static/assets/mimes/application-vnd.sun.xml.writer-global.svg +1 -0
  979. package/static/assets/mimes/application-vnd.sun.xml.writer-template.svg +1 -0
  980. package/static/assets/mimes/application-vnd.sun.xml.writer.svg +1 -0
  981. package/static/assets/mimes/application-vnd.sun.xml.writer.template.svg +14 -0
  982. package/static/assets/mimes/application-vnd.visio.svg +26 -0
  983. package/static/assets/mimes/application-wps-office.doc.svg +1 -0
  984. package/static/assets/mimes/application-wps-office.docx.svg +1 -0
  985. package/static/assets/mimes/application-wps-office.ppt.svg +1 -0
  986. package/static/assets/mimes/application-wps-office.pptx.svg +1 -0
  987. package/static/assets/mimes/application-wps-office.xls.svg +1 -0
  988. package/static/assets/mimes/application-wps-office.xlsx.svg +1 -0
  989. package/static/assets/mimes/application-x-7z-compressed.svg +14 -0
  990. package/static/assets/mimes/application-x-7zip.svg +14 -0
  991. package/static/assets/mimes/application-x-ace.svg +14 -0
  992. package/static/assets/mimes/application-x-addon.svg +59 -0
  993. package/static/assets/mimes/application-x-apple-diskimage.svg +1 -0
  994. package/static/assets/mimes/application-x-ar.svg +16 -0
  995. package/static/assets/mimes/application-x-arc.svg +14 -0
  996. package/static/assets/mimes/application-x-archive.svg +16 -0
  997. package/static/assets/mimes/application-x-arj.svg +14 -0
  998. package/static/assets/mimes/application-x-audacity-project.svg +24 -0
  999. package/static/assets/mimes/application-x-bittorrent.svg +53 -0
  1000. package/static/assets/mimes/application-x-blender.svg +353 -0
  1001. package/static/assets/mimes/application-x-bzdvi.svg +14 -0
  1002. package/static/assets/mimes/application-x-bzip-compressed-tar.svg +14 -0
  1003. package/static/assets/mimes/application-x-bzip.svg +16 -0
  1004. package/static/assets/mimes/application-x-cd-image.svg +292 -0
  1005. package/static/assets/mimes/application-x-cda.svg +358 -0
  1006. package/static/assets/mimes/application-x-class-file.svg +37 -0
  1007. package/static/assets/mimes/application-x-compress-tar.svg +16 -0
  1008. package/static/assets/mimes/application-x-compress.svg +16 -0
  1009. package/static/assets/mimes/application-x-compressed-tar.svg +14 -0
  1010. package/static/assets/mimes/application-x-core.svg +20 -0
  1011. package/static/assets/mimes/application-x-cpio.svg +16 -0
  1012. package/static/assets/mimes/application-x-deb.svg +14 -0
  1013. package/static/assets/mimes/application-x-designer.svg +48 -0
  1014. package/static/assets/mimes/application-x-egon.svg +12 -0
  1015. package/static/assets/mimes/application-x-executable.svg +40 -0
  1016. package/static/assets/mimes/application-x-extension-html.svg +18 -0
  1017. package/static/assets/mimes/application-x-font-afm.svg +14 -0
  1018. package/static/assets/mimes/application-x-font-snf.svg +14 -0
  1019. package/static/assets/mimes/application-x-font-speedo.svg +14 -0
  1020. package/static/assets/mimes/application-x-font-type1.svg +14 -0
  1021. package/static/assets/mimes/application-x-gettext-translation.svg +14 -0
  1022. package/static/assets/mimes/application-x-glade.svg +48 -0
  1023. package/static/assets/mimes/application-x-gnome-theme-package.svg +109 -0
  1024. package/static/assets/mimes/application-x-gzdvi.svg +16 -0
  1025. package/static/assets/mimes/application-x-gzip.svg +16 -0
  1026. package/static/assets/mimes/application-x-httpd-php.svg +18 -0
  1027. package/static/assets/mimes/application-x-iso9660-image.svg +292 -0
  1028. package/static/assets/mimes/application-x-java-archive.svg +16 -0
  1029. package/static/assets/mimes/application-x-java.svg +37 -0
  1030. package/static/assets/mimes/application-x-jokosher.svg +24 -0
  1031. package/static/assets/mimes/application-x-kcachegrind.svg +273 -0
  1032. package/static/assets/mimes/application-x-kcsrc.svg +109 -0
  1033. package/static/assets/mimes/application-x-keepass.svg +2 -0
  1034. package/static/assets/mimes/application-x-keepass2.svg +2 -0
  1035. package/static/assets/mimes/application-x-kgetlist.svg +53 -0
  1036. package/static/assets/mimes/application-x-lha.svg +14 -0
  1037. package/static/assets/mimes/application-x-lzma-compressed-tar.svg +16 -0
  1038. package/static/assets/mimes/application-x-lzop.svg +16 -0
  1039. package/static/assets/mimes/application-x-m4.svg +14 -0
  1040. package/static/assets/mimes/application-x-matroska.svg +18 -0
  1041. package/static/assets/mimes/application-x-mplayer2.svg +18 -0
  1042. package/static/assets/mimes/application-x-ms-application.svg +306 -0
  1043. package/static/assets/mimes/application-x-ms-dos-executable.svg +306 -0
  1044. package/static/assets/mimes/application-x-msdos-program.svg +306 -0
  1045. package/static/assets/mimes/application-x-msdownload.svg +306 -0
  1046. package/static/assets/mimes/application-x-msi.svg +306 -0
  1047. package/static/assets/mimes/application-x-mswinurl.svg +18 -0
  1048. package/static/assets/mimes/application-x-mswrite.svg +1 -0
  1049. package/static/assets/mimes/application-x-nzb.svg +15 -0
  1050. package/static/assets/mimes/application-x-object.svg +273 -0
  1051. package/static/assets/mimes/application-x-ole-storage.svg +273 -0
  1052. package/static/assets/mimes/application-x-pak.svg +16 -0
  1053. package/static/assets/mimes/application-x-perl.svg +15 -0
  1054. package/static/assets/mimes/application-x-php.svg +18 -0
  1055. package/static/assets/mimes/application-x-plasma.svg +20 -0
  1056. package/static/assets/mimes/application-x-python-bytecode.svg +16 -0
  1057. package/static/assets/mimes/application-x-rar.svg +14 -0
  1058. package/static/assets/mimes/application-x-rpm.svg +14 -0
  1059. package/static/assets/mimes/application-x-ruby.svg +22 -0
  1060. package/static/assets/mimes/application-x-sh.svg +17 -0
  1061. package/static/assets/mimes/application-x-shared-library-la.svg +62 -0
  1062. package/static/assets/mimes/application-x-sharedlib.svg +62 -0
  1063. package/static/assets/mimes/application-x-shellscript.svg +17 -0
  1064. package/static/assets/mimes/application-x-shockwave-flash.svg +18 -0
  1065. package/static/assets/mimes/application-x-srt.svg +210 -0
  1066. package/static/assets/mimes/application-x-subrip.svg +210 -0
  1067. package/static/assets/mimes/application-x-tar.svg +16 -0
  1068. package/static/assets/mimes/application-x-tarz.svg +14 -0
  1069. package/static/assets/mimes/application-x-tex.svg +79 -0
  1070. package/static/assets/mimes/application-x-theme.svg +109 -0
  1071. package/static/assets/mimes/application-x-trash.svg +14 -0
  1072. package/static/assets/mimes/application-x-tzo.svg +14 -0
  1073. package/static/assets/mimes/application-x-wine-extension-pdd.svg +14 -0
  1074. package/static/assets/mimes/application-x-zip.svg +14 -0
  1075. package/static/assets/mimes/application-x-zoo.svg +14 -0
  1076. package/static/assets/mimes/application-xhtml+xml.svg +18 -0
  1077. package/static/assets/mimes/application-xhtml.svg +18 -0
  1078. package/static/assets/mimes/application-xml.svg +18 -0
  1079. package/static/assets/mimes/application-xsd.svg +18 -0
  1080. package/static/assets/mimes/application-xslt+xml.svg +18 -0
  1081. package/static/assets/mimes/application-zip.svg +14 -0
  1082. package/static/assets/mimes/applications-java.svg +14 -0
  1083. package/static/assets/mimes/archive.svg +16 -0
  1084. package/static/assets/mimes/ascii.svg +14 -0
  1085. package/static/assets/mimes/audio-ac3.svg +24 -0
  1086. package/static/assets/mimes/audio-flac.svg +24 -0
  1087. package/static/assets/mimes/audio-mpeg.svg +24 -0
  1088. package/static/assets/mimes/audio-vn.rn-realmedia.svg +18 -0
  1089. package/static/assets/mimes/audio-vnd.rn-realvideo.svg +18 -0
  1090. package/static/assets/mimes/audio-x-adpcm.svg +24 -0
  1091. package/static/assets/mimes/audio-x-aiff.svg +24 -0
  1092. package/static/assets/mimes/audio-x-flac+ogg.svg +24 -0
  1093. package/static/assets/mimes/audio-x-flac.svg +24 -0
  1094. package/static/assets/mimes/audio-x-generic.svg +24 -0
  1095. package/static/assets/mimes/audio-x-it.svg +24 -0
  1096. package/static/assets/mimes/audio-x-monkey.svg +24 -0
  1097. package/static/assets/mimes/audio-x-mpegurl.svg +24 -0
  1098. package/static/assets/mimes/audio-x-wav.svg +24 -0
  1099. package/static/assets/mimes/audio-x-xi.svg +24 -0
  1100. package/static/assets/mimes/audio-x-xm.svg +24 -0
  1101. package/static/assets/mimes/binary.svg +40 -0
  1102. package/static/assets/mimes/deb.svg +14 -0
  1103. package/static/assets/mimes/directory.svg +9 -0
  1104. package/static/assets/mimes/directory_disabled.svg +9 -0
  1105. package/static/assets/mimes/directory_error.svg +9 -0
  1106. package/static/assets/mimes/directory_share.svg +9 -0
  1107. package/static/assets/mimes/directory_sync.svg +9 -0
  1108. package/static/assets/mimes/divx.svg +18 -0
  1109. package/static/assets/mimes/document.svg +14 -0
  1110. package/static/assets/mimes/emblem-package.svg +16 -0
  1111. package/static/assets/mimes/eps.svg +24 -0
  1112. package/static/assets/mimes/exec.svg +40 -0
  1113. package/static/assets/mimes/extension.svg +59 -0
  1114. package/static/assets/mimes/file.svg +12 -0
  1115. package/static/assets/mimes/folder-tar.svg +16 -0
  1116. package/static/assets/mimes/folder_tar.svg +16 -0
  1117. package/static/assets/mimes/font-otf.svg +14 -0
  1118. package/static/assets/mimes/font-x-generic.svg +14 -0
  1119. package/static/assets/mimes/font.svg +14 -0
  1120. package/static/assets/mimes/font_bitmap.svg +14 -0
  1121. package/static/assets/mimes/font_truetype.svg +14 -0
  1122. package/static/assets/mimes/font_type1.svg +14 -0
  1123. package/static/assets/mimes/fonts-package.svg +16 -0
  1124. package/static/assets/mimes/gedit-plugin.svg +59 -0
  1125. package/static/assets/mimes/gnome-exe-thumbnailer-generic-x.svg +306 -0
  1126. package/static/assets/mimes/gnome-exe-thumbnailer-generic.svg +306 -0
  1127. package/static/assets/mimes/gnome-exe-thumbnailer-template.svg +306 -0
  1128. package/static/assets/mimes/gnome-fs-executable.svg +40 -0
  1129. package/static/assets/mimes/gnome-mime-application-atom+xml.svg +15 -0
  1130. package/static/assets/mimes/gnome-mime-application-msexcel.svg +1 -0
  1131. package/static/assets/mimes/gnome-mime-application-msword.svg +1 -0
  1132. package/static/assets/mimes/gnome-mime-application-ogg.svg +24 -0
  1133. package/static/assets/mimes/gnome-mime-application-pdf.svg +13 -0
  1134. package/static/assets/mimes/gnome-mime-application-postscript.svg +14 -0
  1135. package/static/assets/mimes/gnome-mime-application-powerpoint.svg +1 -0
  1136. package/static/assets/mimes/gnome-mime-application-rss+xml.svg +15 -0
  1137. package/static/assets/mimes/gnome-mime-application-rtf.svg +14 -0
  1138. package/static/assets/mimes/gnome-mime-application-vnd.ms-excel.svg +1 -0
  1139. package/static/assets/mimes/gnome-mime-application-vnd.ms-powerpoint.svg +1 -0
  1140. package/static/assets/mimes/gnome-mime-application-vnd.ms-word.svg +1 -0
  1141. package/static/assets/mimes/gnome-mime-application-vnd.mspowerpoint.svg +1 -0
  1142. package/static/assets/mimes/gnome-mime-application-vnd.oasis.opendocument.formula.svg +188 -0
  1143. package/static/assets/mimes/gnome-mime-application-vnd.oasis.opendocument.text-web.svg +18 -0
  1144. package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.presentationml.presentation.svg +1 -0
  1145. package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.presentationml.slideshow.svg +1 -0
  1146. package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.svg +1 -0
  1147. package/static/assets/mimes/gnome-mime-application-vnd.openxmlformats-officedocument.wordprocessingml.document.svg +1 -0
  1148. package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia-secure.svg +18 -0
  1149. package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia-vbr.svg +18 -0
  1150. package/static/assets/mimes/gnome-mime-application-vnd.rn-realmedia.svg +18 -0
  1151. package/static/assets/mimes/gnome-mime-application-wps-office.doc.svg +1 -0
  1152. package/static/assets/mimes/gnome-mime-application-wps-office.docx.svg +1 -0
  1153. package/static/assets/mimes/gnome-mime-application-wps-office.ppt.svg +1 -0
  1154. package/static/assets/mimes/gnome-mime-application-wps-office.pptx.svg +1 -0
  1155. package/static/assets/mimes/gnome-mime-application-wps-office.xls.svg +1 -0
  1156. package/static/assets/mimes/gnome-mime-application-wps-office.xlsx.svg +1 -0
  1157. package/static/assets/mimes/gnome-mime-application-x-7z-compressed.svg +14 -0
  1158. package/static/assets/mimes/gnome-mime-application-x-7zip.svg +14 -0
  1159. package/static/assets/mimes/gnome-mime-application-x-archive.svg +16 -0
  1160. package/static/assets/mimes/gnome-mime-application-x-arj.svg +16 -0
  1161. package/static/assets/mimes/gnome-mime-application-x-bittorrent.svg +53 -0
  1162. package/static/assets/mimes/gnome-mime-application-x-bzip-compressed-tar.svg +16 -0
  1163. package/static/assets/mimes/gnome-mime-application-x-bzip-compressed.svg +16 -0
  1164. package/static/assets/mimes/gnome-mime-application-x-bzip.svg +16 -0
  1165. package/static/assets/mimes/gnome-mime-application-x-class-file.svg +14 -0
  1166. package/static/assets/mimes/gnome-mime-application-x-compress.svg +16 -0
  1167. package/static/assets/mimes/gnome-mime-application-x-compressed-tar.svg +16 -0
  1168. package/static/assets/mimes/gnome-mime-application-x-cpio-compressed.svg +16 -0
  1169. package/static/assets/mimes/gnome-mime-application-x-cpio.svg +16 -0
  1170. package/static/assets/mimes/gnome-mime-application-x-deb.svg +14 -0
  1171. package/static/assets/mimes/gnome-mime-application-x-designer.svg +48 -0
  1172. package/static/assets/mimes/gnome-mime-application-x-executable.svg +40 -0
  1173. package/static/assets/mimes/gnome-mime-application-x-font-afm.svg +14 -0
  1174. package/static/assets/mimes/gnome-mime-application-x-font-bdf.svg +14 -0
  1175. package/static/assets/mimes/gnome-mime-application-x-font-linux-psf.svg +14 -0
  1176. package/static/assets/mimes/gnome-mime-application-x-font-pcf.svg +14 -0
  1177. package/static/assets/mimes/gnome-mime-application-x-font-sunos-news.svg +14 -0
  1178. package/static/assets/mimes/gnome-mime-application-x-font-ttf.svg +14 -0
  1179. package/static/assets/mimes/gnome-mime-application-x-glade.svg +48 -0
  1180. package/static/assets/mimes/gnome-mime-application-x-gnome-app-info.svg +109 -0
  1181. package/static/assets/mimes/gnome-mime-application-x-gnome-theme-package.svg +109 -0
  1182. package/static/assets/mimes/gnome-mime-application-x-gzip.svg +16 -0
  1183. package/static/assets/mimes/gnome-mime-application-x-gzpostscript.svg +14 -0
  1184. package/static/assets/mimes/gnome-mime-application-x-jar.svg +16 -0
  1185. package/static/assets/mimes/gnome-mime-application-x-java.svg +14 -0
  1186. package/static/assets/mimes/gnome-mime-application-x-killustrator.svg +12 -0
  1187. package/static/assets/mimes/gnome-mime-application-x-lha.svg +16 -0
  1188. package/static/assets/mimes/gnome-mime-application-x-lhz.svg +16 -0
  1189. package/static/assets/mimes/gnome-mime-application-x-lzma-compressed-tar.svg +16 -0
  1190. package/static/assets/mimes/gnome-mime-application-x-lzma.svg +16 -0
  1191. package/static/assets/mimes/gnome-mime-application-x-ms-dos-executable.svg +306 -0
  1192. package/static/assets/mimes/gnome-mime-application-x-perl.svg +15 -0
  1193. package/static/assets/mimes/gnome-mime-application-x-php.svg +18 -0
  1194. package/static/assets/mimes/gnome-mime-application-x-python-bytecode.svg +16 -0
  1195. package/static/assets/mimes/gnome-mime-application-x-rar.svg +14 -0
  1196. package/static/assets/mimes/gnome-mime-application-x-rpm.svg +14 -0
  1197. package/static/assets/mimes/gnome-mime-application-x-ruby.svg +22 -0
  1198. package/static/assets/mimes/gnome-mime-application-x-shellscript.svg +17 -0
  1199. package/static/assets/mimes/gnome-mime-application-x-shockwave-flash.svg +18 -0
  1200. package/static/assets/mimes/gnome-mime-application-x-stuffit.svg +16 -0
  1201. package/static/assets/mimes/gnome-mime-application-x-tar.svg +16 -0
  1202. package/static/assets/mimes/gnome-mime-application-x-tarz.svg +16 -0
  1203. package/static/assets/mimes/gnome-mime-application-x-tex.svg +79 -0
  1204. package/static/assets/mimes/gnome-mime-application-x-theme.svg +109 -0
  1205. package/static/assets/mimes/gnome-mime-application-x-zip.svg +14 -0
  1206. package/static/assets/mimes/gnome-mime-application-xhtml+xml.svg +18 -0
  1207. package/static/assets/mimes/gnome-mime-application-xml.svg +18 -0
  1208. package/static/assets/mimes/gnome-mime-application-zip.svg +14 -0
  1209. package/static/assets/mimes/gnome-mime-application.svg +40 -0
  1210. package/static/assets/mimes/gnome-mime-audio.svg +24 -0
  1211. package/static/assets/mimes/gnome-mime-image-vnd.adobe.photoshop.svg +14 -0
  1212. package/static/assets/mimes/gnome-mime-image-x-cmu-raster.svg +12 -0
  1213. package/static/assets/mimes/gnome-mime-image-x-killustrator.svg +12 -0
  1214. package/static/assets/mimes/gnome-mime-image-x-psd.svg +14 -0
  1215. package/static/assets/mimes/gnome-mime-image-x-xpixmap.svg +12 -0
  1216. package/static/assets/mimes/gnome-mime-image.svg +12 -0
  1217. package/static/assets/mimes/gnome-mime-text-html.svg +18 -0
  1218. package/static/assets/mimes/gnome-mime-text-install.svg +20 -0
  1219. package/static/assets/mimes/gnome-mime-text-plain.svg +14 -0
  1220. package/static/assets/mimes/gnome-mime-text-vnd.wap.wml.svg +18 -0
  1221. package/static/assets/mimes/gnome-mime-text-x-changelog.svg +208 -0
  1222. package/static/assets/mimes/gnome-mime-text-x-copying.svg +17 -0
  1223. package/static/assets/mimes/gnome-mime-text-x-csh.svg +17 -0
  1224. package/static/assets/mimes/gnome-mime-text-x-gtkrc.svg +109 -0
  1225. package/static/assets/mimes/gnome-mime-text-x-install.svg +17 -0
  1226. package/static/assets/mimes/gnome-mime-text-x-java-source.svg +14 -0
  1227. package/static/assets/mimes/gnome-mime-text-x-java.svg +14 -0
  1228. package/static/assets/mimes/gnome-mime-text-x-makefile.svg +176 -0
  1229. package/static/assets/mimes/gnome-mime-text-x-opml+xml.svg +15 -0
  1230. package/static/assets/mimes/gnome-mime-text-x-opml.svg +15 -0
  1231. package/static/assets/mimes/gnome-mime-text-x-python.svg +16 -0
  1232. package/static/assets/mimes/gnome-mime-text-x-readme.svg +15 -0
  1233. package/static/assets/mimes/gnome-mime-text-x-sh.svg +17 -0
  1234. package/static/assets/mimes/gnome-mime-text-x-zsh.svg +17 -0
  1235. package/static/assets/mimes/gnome-mime-text.svg +14 -0
  1236. package/static/assets/mimes/gnome-mime-video-x-ms-asf.svg +18 -0
  1237. package/static/assets/mimes/gnome-mime-video-x-ms-wmv.svg +18 -0
  1238. package/static/assets/mimes/gnome-mime-video.svg +18 -0
  1239. package/static/assets/mimes/gnome-mime-x-font-afm.svg +14 -0
  1240. package/static/assets/mimes/gnome-mime-x-install.svg +20 -0
  1241. package/static/assets/mimes/gnome-package.svg +16 -0
  1242. package/static/assets/mimes/html.svg +18 -0
  1243. package/static/assets/mimes/image-gif.svg +12 -0
  1244. package/static/assets/mimes/image-jpeg.svg +12 -0
  1245. package/static/assets/mimes/image-png.svg +12 -0
  1246. package/static/assets/mimes/image-svg+xml-compressed.svg +12 -0
  1247. package/static/assets/mimes/image-svg+xml.svg +12 -0
  1248. package/static/assets/mimes/image-svg.svg +12 -0
  1249. package/static/assets/mimes/image-vnd.adobe.photoshop.svg +14 -0
  1250. package/static/assets/mimes/image-vnd.microsoft.icon.svg +12 -0
  1251. package/static/assets/mimes/image-x-eps.svg +24 -0
  1252. package/static/assets/mimes/image-x-generic.svg +12 -0
  1253. package/static/assets/mimes/image-x-psd.svg +14 -0
  1254. package/static/assets/mimes/image-x-psdimage-x-psd.svg +14 -0
  1255. package/static/assets/mimes/image-x-xcf.svg +21 -0
  1256. package/static/assets/mimes/image-x-xfig.svg +12 -0
  1257. package/static/assets/mimes/image.svg +12 -0
  1258. package/static/assets/mimes/internet-feed.svg +15 -0
  1259. package/static/assets/mimes/libpeas-plugin.svg +59 -0
  1260. package/static/assets/mimes/libreoffice-database.svg +155 -0
  1261. package/static/assets/mimes/libreoffice-extension.svg +59 -0
  1262. package/static/assets/mimes/libreoffice-extensionn.svg +59 -0
  1263. package/static/assets/mimes/libreoffice-formula.svg +188 -0
  1264. package/static/assets/mimes/libreoffice-oasis-formula.svg +188 -0
  1265. package/static/assets/mimes/libreoffice34-extension.svg +59 -0
  1266. package/static/assets/mimes/media-audio.svg +24 -0
  1267. package/static/assets/mimes/media-video.svg +18 -0
  1268. package/static/assets/mimes/mime-ascii.svg +14 -0
  1269. package/static/assets/mimes/mime_ascii.svg +14 -0
  1270. package/static/assets/mimes/misc.svg +14 -0
  1271. package/static/assets/mimes/multipart-encrypted.svg +273 -0
  1272. package/static/assets/mimes/music.svg +24 -0
  1273. package/static/assets/mimes/none.svg +110 -0
  1274. package/static/assets/mimes/old-file.svg +22 -0
  1275. package/static/assets/mimes/openofficeorg3-extension.svg +59 -0
  1276. package/static/assets/mimes/package-x-generic.svg +16 -0
  1277. package/static/assets/mimes/package.svg +16 -0
  1278. package/static/assets/mimes/package_editors.svg +14 -0
  1279. package/static/assets/mimes/packages-gdebi.svg +14 -0
  1280. package/static/assets/mimes/pdf.svg +13 -0
  1281. package/static/assets/mimes/preferences-certificate.svg +28 -0
  1282. package/static/assets/mimes/preferences-plugin.svg +59 -0
  1283. package/static/assets/mimes/rar.svg +14 -0
  1284. package/static/assets/mimes/raw.svg +12 -0
  1285. package/static/assets/mimes/rpm.svg +14 -0
  1286. package/static/assets/mimes/scii.svg +14 -0
  1287. package/static/assets/mimes/shellscript.svg +17 -0
  1288. package/static/assets/mimes/sound.svg +24 -0
  1289. package/static/assets/mimes/stock_certificate.svg +28 -0
  1290. package/static/assets/mimes/stock_new-formula.svg +188 -0
  1291. package/static/assets/mimes/stock_new-html.svg +18 -0
  1292. package/static/assets/mimes/stock_script.svg +17 -0
  1293. package/static/assets/mimes/stock_scripts.svg +17 -0
  1294. package/static/assets/mimes/tar.svg +16 -0
  1295. package/static/assets/mimes/text-css.svg +18 -0
  1296. package/static/assets/mimes/text-enriched.svg +14 -0
  1297. package/static/assets/mimes/text-html.svg +18 -0
  1298. package/static/assets/mimes/text-htmlh.svg +18 -0
  1299. package/static/assets/mimes/text-javascript.svg +6 -0
  1300. package/static/assets/mimes/text-markdown.svg +26 -0
  1301. package/static/assets/mimes/text-mht.svg +18 -0
  1302. package/static/assets/mimes/text-plain.svg +14 -0
  1303. package/static/assets/mimes/text-richtext.svg +14 -0
  1304. package/static/assets/mimes/text-typescript.svg +1 -0
  1305. package/static/assets/mimes/text-x-bak.svg +14 -0
  1306. package/static/assets/mimes/text-x-bibtex.svg +79 -0
  1307. package/static/assets/mimes/text-x-changelog.svg +208 -0
  1308. package/static/assets/mimes/text-x-copying.svg +17 -0
  1309. package/static/assets/mimes/text-x-generic.svg +14 -0
  1310. package/static/assets/mimes/text-x-gtkrc.svg +109 -0
  1311. package/static/assets/mimes/text-x-install.svg +20 -0
  1312. package/static/assets/mimes/text-x-java-source.svg +14 -0
  1313. package/static/assets/mimes/text-x-java.svg +14 -0
  1314. package/static/assets/mimes/text-x-log.svg +1135 -0
  1315. package/static/assets/mimes/text-x-lua.svg +14 -0
  1316. package/static/assets/mimes/text-x-makefile.svg +176 -0
  1317. package/static/assets/mimes/text-x-microdvd.svg +210 -0
  1318. package/static/assets/mimes/text-x-nfo.svg +14 -0
  1319. package/static/assets/mimes/text-x-opml+xml.svg +15 -0
  1320. package/static/assets/mimes/text-x-opml.svg +15 -0
  1321. package/static/assets/mimes/text-x-patch.svg +19 -0
  1322. package/static/assets/mimes/text-x-perl.svg +15 -0
  1323. package/static/assets/mimes/text-x-python.svg +16 -0
  1324. package/static/assets/mimes/text-x-readme.svg +15 -0
  1325. package/static/assets/mimes/text-x-ruby.svg +22 -0
  1326. package/static/assets/mimes/text-x-script.svg +17 -0
  1327. package/static/assets/mimes/text-x-tex.svg +79 -0
  1328. package/static/assets/mimes/text-x-vala.svg +14 -0
  1329. package/static/assets/mimes/text-x.svg +14 -0
  1330. package/static/assets/mimes/text-xmcd.svg +358 -0
  1331. package/static/assets/mimes/text-xml.svg +18 -0
  1332. package/static/assets/mimes/text-yaml.svg +1 -0
  1333. package/static/assets/mimes/text.svg +14 -0
  1334. package/static/assets/mimes/text2.svg +14 -0
  1335. package/static/assets/mimes/tgz.svg +16 -0
  1336. package/static/assets/mimes/txt.svg +14 -0
  1337. package/static/assets/mimes/txt2.svg +14 -0
  1338. package/static/assets/mimes/unknown.svg +110 -0
  1339. package/static/assets/mimes/uri-mms.svg +18 -0
  1340. package/static/assets/mimes/uri-mmst.svg +18 -0
  1341. package/static/assets/mimes/uri-mmsu.svg +18 -0
  1342. package/static/assets/mimes/uri-pnm.svg +18 -0
  1343. package/static/assets/mimes/uri-rtspt.svg +18 -0
  1344. package/static/assets/mimes/uri-rtspu.svg +18 -0
  1345. package/static/assets/mimes/video-quicktime.svg +18 -0
  1346. package/static/assets/mimes/video-vivo.svg +18 -0
  1347. package/static/assets/mimes/video-wavelet.svg +18 -0
  1348. package/static/assets/mimes/video-webm.svg +18 -0
  1349. package/static/assets/mimes/video-x-anim.svg +18 -0
  1350. package/static/assets/mimes/video-x-flic.svg +18 -0
  1351. package/static/assets/mimes/video-x-generic.svg +18 -0
  1352. package/static/assets/mimes/video-x-google-vlc-plugin.svg +18 -0
  1353. package/static/assets/mimes/video-x-javafx.svg +18 -0
  1354. package/static/assets/mimes/video-x-matroska.svg +18 -0
  1355. package/static/assets/mimes/video-x-mng.svg +18 -0
  1356. package/static/assets/mimes/video-x-ms-asf-plugin.svg +18 -0
  1357. package/static/assets/mimes/video-x-ms-asf.svg +18 -0
  1358. package/static/assets/mimes/video-x-ms-wmp.svg +18 -0
  1359. package/static/assets/mimes/video-x-ms-wmv.svg +18 -0
  1360. package/static/assets/mimes/video-x-nsv.svg +18 -0
  1361. package/static/assets/mimes/video-x-sgi-movie.svg +18 -0
  1362. package/static/assets/mimes/video-x-theora+ogg.svg +18 -0
  1363. package/static/assets/mimes/video-x-wmv.svg +18 -0
  1364. package/static/assets/mimes/video.svg +18 -0
  1365. package/static/assets/mimes/www.svg +18 -0
  1366. package/static/assets/mimes/x-kde-nsplugin-generated.svg +59 -0
  1367. package/static/assets/mimes/zip.svg +14 -0
  1368. package/static/assets/pdfjs/LICENSE +177 -0
  1369. package/static/assets/pdfjs/build/pdf.mjs +23371 -0
  1370. package/static/assets/pdfjs/build/pdf.mjs.map +1 -0
  1371. package/static/assets/pdfjs/build/pdf.sandbox.mjs +218 -0
  1372. package/static/assets/pdfjs/build/pdf.sandbox.mjs.map +1 -0
  1373. package/static/assets/pdfjs/build/pdf.worker.mjs +58148 -0
  1374. package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -0
  1375. package/static/assets/pdfjs/version +1 -0
  1376. package/static/assets/pdfjs/web/cmaps/78-EUC-H.bcmap +0 -0
  1377. package/static/assets/pdfjs/web/cmaps/78-EUC-V.bcmap +0 -0
  1378. package/static/assets/pdfjs/web/cmaps/78-H.bcmap +0 -0
  1379. package/static/assets/pdfjs/web/cmaps/78-RKSJ-H.bcmap +0 -0
  1380. package/static/assets/pdfjs/web/cmaps/78-RKSJ-V.bcmap +0 -0
  1381. package/static/assets/pdfjs/web/cmaps/78-V.bcmap +0 -0
  1382. package/static/assets/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
  1383. package/static/assets/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
  1384. package/static/assets/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
  1385. package/static/assets/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
  1386. package/static/assets/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
  1387. package/static/assets/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
  1388. package/static/assets/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
  1389. package/static/assets/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
  1390. package/static/assets/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
  1391. package/static/assets/pdfjs/web/cmaps/Add-H.bcmap +0 -0
  1392. package/static/assets/pdfjs/web/cmaps/Add-RKSJ-H.bcmap +0 -0
  1393. package/static/assets/pdfjs/web/cmaps/Add-RKSJ-V.bcmap +0 -0
  1394. package/static/assets/pdfjs/web/cmaps/Add-V.bcmap +0 -0
  1395. package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
  1396. package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
  1397. package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
  1398. package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
  1399. package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
  1400. package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
  1401. package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
  1402. package/static/assets/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  1403. package/static/assets/pdfjs/web/cmaps/Adobe-GB1-0.bcmap +0 -0
  1404. package/static/assets/pdfjs/web/cmaps/Adobe-GB1-1.bcmap +0 -0
  1405. package/static/assets/pdfjs/web/cmaps/Adobe-GB1-2.bcmap +0 -0
  1406. package/static/assets/pdfjs/web/cmaps/Adobe-GB1-3.bcmap +0 -0
  1407. package/static/assets/pdfjs/web/cmaps/Adobe-GB1-4.bcmap +0 -0
  1408. package/static/assets/pdfjs/web/cmaps/Adobe-GB1-5.bcmap +0 -0
  1409. package/static/assets/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  1410. package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
  1411. package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
  1412. package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
  1413. package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
  1414. package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
  1415. package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
  1416. package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
  1417. package/static/assets/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  1418. package/static/assets/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
  1419. package/static/assets/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
  1420. package/static/assets/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
  1421. package/static/assets/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  1422. package/static/assets/pdfjs/web/cmaps/B5-H.bcmap +0 -0
  1423. package/static/assets/pdfjs/web/cmaps/B5-V.bcmap +0 -0
  1424. package/static/assets/pdfjs/web/cmaps/B5pc-H.bcmap +0 -0
  1425. package/static/assets/pdfjs/web/cmaps/B5pc-V.bcmap +0 -0
  1426. package/static/assets/pdfjs/web/cmaps/CNS-EUC-H.bcmap +0 -0
  1427. package/static/assets/pdfjs/web/cmaps/CNS-EUC-V.bcmap +0 -0
  1428. package/static/assets/pdfjs/web/cmaps/CNS1-H.bcmap +0 -0
  1429. package/static/assets/pdfjs/web/cmaps/CNS1-V.bcmap +0 -0
  1430. package/static/assets/pdfjs/web/cmaps/CNS2-H.bcmap +0 -0
  1431. package/static/assets/pdfjs/web/cmaps/CNS2-V.bcmap +3 -0
  1432. package/static/assets/pdfjs/web/cmaps/ETHK-B5-H.bcmap +0 -0
  1433. package/static/assets/pdfjs/web/cmaps/ETHK-B5-V.bcmap +0 -0
  1434. package/static/assets/pdfjs/web/cmaps/ETen-B5-H.bcmap +0 -0
  1435. package/static/assets/pdfjs/web/cmaps/ETen-B5-V.bcmap +0 -0
  1436. package/static/assets/pdfjs/web/cmaps/ETenms-B5-H.bcmap +3 -0
  1437. package/static/assets/pdfjs/web/cmaps/ETenms-B5-V.bcmap +0 -0
  1438. package/static/assets/pdfjs/web/cmaps/EUC-H.bcmap +0 -0
  1439. package/static/assets/pdfjs/web/cmaps/EUC-V.bcmap +0 -0
  1440. package/static/assets/pdfjs/web/cmaps/Ext-H.bcmap +0 -0
  1441. package/static/assets/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
  1442. package/static/assets/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
  1443. package/static/assets/pdfjs/web/cmaps/Ext-V.bcmap +0 -0
  1444. package/static/assets/pdfjs/web/cmaps/GB-EUC-H.bcmap +0 -0
  1445. package/static/assets/pdfjs/web/cmaps/GB-EUC-V.bcmap +0 -0
  1446. package/static/assets/pdfjs/web/cmaps/GB-H.bcmap +4 -0
  1447. package/static/assets/pdfjs/web/cmaps/GB-V.bcmap +0 -0
  1448. package/static/assets/pdfjs/web/cmaps/GBK-EUC-H.bcmap +0 -0
  1449. package/static/assets/pdfjs/web/cmaps/GBK-EUC-V.bcmap +0 -0
  1450. package/static/assets/pdfjs/web/cmaps/GBK2K-H.bcmap +0 -0
  1451. package/static/assets/pdfjs/web/cmaps/GBK2K-V.bcmap +0 -0
  1452. package/static/assets/pdfjs/web/cmaps/GBKp-EUC-H.bcmap +0 -0
  1453. package/static/assets/pdfjs/web/cmaps/GBKp-EUC-V.bcmap +0 -0
  1454. package/static/assets/pdfjs/web/cmaps/GBT-EUC-H.bcmap +0 -0
  1455. package/static/assets/pdfjs/web/cmaps/GBT-EUC-V.bcmap +0 -0
  1456. package/static/assets/pdfjs/web/cmaps/GBT-H.bcmap +0 -0
  1457. package/static/assets/pdfjs/web/cmaps/GBT-V.bcmap +0 -0
  1458. package/static/assets/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
  1459. package/static/assets/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
  1460. package/static/assets/pdfjs/web/cmaps/GBpc-EUC-H.bcmap +0 -0
  1461. package/static/assets/pdfjs/web/cmaps/GBpc-EUC-V.bcmap +0 -0
  1462. package/static/assets/pdfjs/web/cmaps/H.bcmap +0 -0
  1463. package/static/assets/pdfjs/web/cmaps/HKdla-B5-H.bcmap +0 -0
  1464. package/static/assets/pdfjs/web/cmaps/HKdla-B5-V.bcmap +0 -0
  1465. package/static/assets/pdfjs/web/cmaps/HKdlb-B5-H.bcmap +0 -0
  1466. package/static/assets/pdfjs/web/cmaps/HKdlb-B5-V.bcmap +0 -0
  1467. package/static/assets/pdfjs/web/cmaps/HKgccs-B5-H.bcmap +0 -0
  1468. package/static/assets/pdfjs/web/cmaps/HKgccs-B5-V.bcmap +0 -0
  1469. package/static/assets/pdfjs/web/cmaps/HKm314-B5-H.bcmap +0 -0
  1470. package/static/assets/pdfjs/web/cmaps/HKm314-B5-V.bcmap +0 -0
  1471. package/static/assets/pdfjs/web/cmaps/HKm471-B5-H.bcmap +0 -0
  1472. package/static/assets/pdfjs/web/cmaps/HKm471-B5-V.bcmap +0 -0
  1473. package/static/assets/pdfjs/web/cmaps/HKscs-B5-H.bcmap +0 -0
  1474. package/static/assets/pdfjs/web/cmaps/HKscs-B5-V.bcmap +0 -0
  1475. package/static/assets/pdfjs/web/cmaps/Hankaku.bcmap +0 -0
  1476. package/static/assets/pdfjs/web/cmaps/Hiragana.bcmap +0 -0
  1477. package/static/assets/pdfjs/web/cmaps/KSC-EUC-H.bcmap +0 -0
  1478. package/static/assets/pdfjs/web/cmaps/KSC-EUC-V.bcmap +0 -0
  1479. package/static/assets/pdfjs/web/cmaps/KSC-H.bcmap +0 -0
  1480. package/static/assets/pdfjs/web/cmaps/KSC-Johab-H.bcmap +0 -0
  1481. package/static/assets/pdfjs/web/cmaps/KSC-Johab-V.bcmap +0 -0
  1482. package/static/assets/pdfjs/web/cmaps/KSC-V.bcmap +0 -0
  1483. package/static/assets/pdfjs/web/cmaps/KSCms-UHC-H.bcmap +0 -0
  1484. package/static/assets/pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  1485. package/static/assets/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  1486. package/static/assets/pdfjs/web/cmaps/KSCms-UHC-V.bcmap +0 -0
  1487. package/static/assets/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
  1488. package/static/assets/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
  1489. package/static/assets/pdfjs/web/cmaps/Katakana.bcmap +0 -0
  1490. package/static/assets/pdfjs/web/cmaps/LICENSE +36 -0
  1491. package/static/assets/pdfjs/web/cmaps/NWP-H.bcmap +0 -0
  1492. package/static/assets/pdfjs/web/cmaps/NWP-V.bcmap +0 -0
  1493. package/static/assets/pdfjs/web/cmaps/RKSJ-H.bcmap +0 -0
  1494. package/static/assets/pdfjs/web/cmaps/RKSJ-V.bcmap +0 -0
  1495. package/static/assets/pdfjs/web/cmaps/Roman.bcmap +0 -0
  1496. package/static/assets/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  1497. package/static/assets/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  1498. package/static/assets/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  1499. package/static/assets/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  1500. package/static/assets/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  1501. package/static/assets/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  1502. package/static/assets/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  1503. package/static/assets/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  1504. package/static/assets/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
  1505. package/static/assets/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
  1506. package/static/assets/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
  1507. package/static/assets/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
  1508. package/static/assets/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
  1509. package/static/assets/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
  1510. package/static/assets/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
  1511. package/static/assets/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
  1512. package/static/assets/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  1513. package/static/assets/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  1514. package/static/assets/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  1515. package/static/assets/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  1516. package/static/assets/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  1517. package/static/assets/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  1518. package/static/assets/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  1519. package/static/assets/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  1520. package/static/assets/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  1521. package/static/assets/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  1522. package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  1523. package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  1524. package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  1525. package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  1526. package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  1527. package/static/assets/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  1528. package/static/assets/pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  1529. package/static/assets/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  1530. package/static/assets/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  1531. package/static/assets/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  1532. package/static/assets/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  1533. package/static/assets/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  1534. package/static/assets/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  1535. package/static/assets/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
  1536. package/static/assets/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
  1537. package/static/assets/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
  1538. package/static/assets/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
  1539. package/static/assets/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
  1540. package/static/assets/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
  1541. package/static/assets/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
  1542. package/static/assets/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
  1543. package/static/assets/pdfjs/web/cmaps/V.bcmap +0 -0
  1544. package/static/assets/pdfjs/web/cmaps/WP-Symbol.bcmap +0 -0
  1545. package/static/assets/pdfjs/web/compressed.tracemonkey-pldi-09.pdf +0 -0
  1546. package/static/assets/pdfjs/web/debugger.css +114 -0
  1547. package/static/assets/pdfjs/web/debugger.mjs +627 -0
  1548. package/static/assets/pdfjs/web/iccs/CGATS001Compat-v2-micro.icc +0 -0
  1549. package/static/assets/pdfjs/web/iccs/LICENSE +116 -0
  1550. package/static/assets/pdfjs/web/images/altText_add.svg +3 -0
  1551. package/static/assets/pdfjs/web/images/altText_disclaimer.svg +3 -0
  1552. package/static/assets/pdfjs/web/images/altText_done.svg +3 -0
  1553. package/static/assets/pdfjs/web/images/altText_spinner.svg +30 -0
  1554. package/static/assets/pdfjs/web/images/altText_warning.svg +3 -0
  1555. package/static/assets/pdfjs/web/images/annotation-check.svg +11 -0
  1556. package/static/assets/pdfjs/web/images/annotation-comment.svg +16 -0
  1557. package/static/assets/pdfjs/web/images/annotation-help.svg +26 -0
  1558. package/static/assets/pdfjs/web/images/annotation-insert.svg +10 -0
  1559. package/static/assets/pdfjs/web/images/annotation-key.svg +11 -0
  1560. package/static/assets/pdfjs/web/images/annotation-newparagraph.svg +11 -0
  1561. package/static/assets/pdfjs/web/images/annotation-noicon.svg +7 -0
  1562. package/static/assets/pdfjs/web/images/annotation-note.svg +42 -0
  1563. package/static/assets/pdfjs/web/images/annotation-paperclip.svg +6 -0
  1564. package/static/assets/pdfjs/web/images/annotation-paragraph.svg +16 -0
  1565. package/static/assets/pdfjs/web/images/annotation-pushpin.svg +7 -0
  1566. package/static/assets/pdfjs/web/images/comment-actionsButton.svg +3 -0
  1567. package/static/assets/pdfjs/web/images/comment-closeButton.svg +3 -0
  1568. package/static/assets/pdfjs/web/images/comment-editButton.svg +3 -0
  1569. package/static/assets/pdfjs/web/images/cursor-editorFreeHighlight.svg +6 -0
  1570. package/static/assets/pdfjs/web/images/cursor-editorFreeText.svg +3 -0
  1571. package/static/assets/pdfjs/web/images/cursor-editorInk.svg +4 -0
  1572. package/static/assets/pdfjs/web/images/cursor-editorTextHighlight.svg +8 -0
  1573. package/static/assets/pdfjs/web/images/editor-toolbar-delete.svg +5 -0
  1574. package/static/assets/pdfjs/web/images/editor-toolbar-edit.svg +3 -0
  1575. package/static/assets/pdfjs/web/images/findbarButton-next.svg +3 -0
  1576. package/static/assets/pdfjs/web/images/findbarButton-previous.svg +3 -0
  1577. package/static/assets/pdfjs/web/images/gv-toolbarButton-download.svg +3 -0
  1578. package/static/assets/pdfjs/web/images/loading-icon.gif +0 -0
  1579. package/static/assets/pdfjs/web/images/loading.svg +1 -0
  1580. package/static/assets/pdfjs/web/images/messageBar_closingButton.svg +3 -0
  1581. package/static/assets/pdfjs/web/images/messageBar_info.svg +3 -0
  1582. package/static/assets/pdfjs/web/images/messageBar_warning.svg +3 -0
  1583. package/static/assets/pdfjs/web/images/secondaryToolbarButton-documentProperties.svg +3 -0
  1584. package/static/assets/pdfjs/web/images/secondaryToolbarButton-firstPage.svg +3 -0
  1585. package/static/assets/pdfjs/web/images/secondaryToolbarButton-handTool.svg +3 -0
  1586. package/static/assets/pdfjs/web/images/secondaryToolbarButton-lastPage.svg +3 -0
  1587. package/static/assets/pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg +3 -0
  1588. package/static/assets/pdfjs/web/images/secondaryToolbarButton-rotateCw.svg +3 -0
  1589. package/static/assets/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg +3 -0
  1590. package/static/assets/pdfjs/web/images/secondaryToolbarButton-scrollPage.svg +3 -0
  1591. package/static/assets/pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg +3 -0
  1592. package/static/assets/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg +3 -0
  1593. package/static/assets/pdfjs/web/images/secondaryToolbarButton-selectTool.svg +3 -0
  1594. package/static/assets/pdfjs/web/images/secondaryToolbarButton-spreadEven.svg +3 -0
  1595. package/static/assets/pdfjs/web/images/secondaryToolbarButton-spreadNone.svg +3 -0
  1596. package/static/assets/pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg +3 -0
  1597. package/static/assets/pdfjs/web/images/toolbarButton-bookmark.svg +3 -0
  1598. package/static/assets/pdfjs/web/images/toolbarButton-currentOutlineItem.svg +3 -0
  1599. package/static/assets/pdfjs/web/images/toolbarButton-download.svg +4 -0
  1600. package/static/assets/pdfjs/web/images/toolbarButton-editorFreeText.svg +5 -0
  1601. package/static/assets/pdfjs/web/images/toolbarButton-editorHighlight.svg +6 -0
  1602. package/static/assets/pdfjs/web/images/toolbarButton-editorInk.svg +4 -0
  1603. package/static/assets/pdfjs/web/images/toolbarButton-editorSignature.svg +6 -0
  1604. package/static/assets/pdfjs/web/images/toolbarButton-editorStamp.svg +8 -0
  1605. package/static/assets/pdfjs/web/images/toolbarButton-menuArrow.svg +3 -0
  1606. package/static/assets/pdfjs/web/images/toolbarButton-openFile.svg +3 -0
  1607. package/static/assets/pdfjs/web/images/toolbarButton-pageDown.svg +3 -0
  1608. package/static/assets/pdfjs/web/images/toolbarButton-pageUp.svg +3 -0
  1609. package/static/assets/pdfjs/web/images/toolbarButton-presentationMode.svg +3 -0
  1610. package/static/assets/pdfjs/web/images/toolbarButton-print.svg +3 -0
  1611. package/static/assets/pdfjs/web/images/toolbarButton-search.svg +3 -0
  1612. package/static/assets/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg +3 -0
  1613. package/static/assets/pdfjs/web/images/toolbarButton-sidebarToggle.svg +3 -0
  1614. package/static/assets/pdfjs/web/images/toolbarButton-viewAttachments.svg +3 -0
  1615. package/static/assets/pdfjs/web/images/toolbarButton-viewLayers.svg +3 -0
  1616. package/static/assets/pdfjs/web/images/toolbarButton-viewOutline.svg +3 -0
  1617. package/static/assets/pdfjs/web/images/toolbarButton-viewThumbnail.svg +3 -0
  1618. package/static/assets/pdfjs/web/images/toolbarButton-zoomIn.svg +3 -0
  1619. package/static/assets/pdfjs/web/images/toolbarButton-zoomOut.svg +3 -0
  1620. package/static/assets/pdfjs/web/images/treeitem-collapsed.svg +1 -0
  1621. package/static/assets/pdfjs/web/images/treeitem-expanded.svg +1 -0
  1622. package/static/assets/pdfjs/web/locale/ach/viewer.ftl +275 -0
  1623. package/static/assets/pdfjs/web/locale/af/viewer.ftl +262 -0
  1624. package/static/assets/pdfjs/web/locale/an/viewer.ftl +307 -0
  1625. package/static/assets/pdfjs/web/locale/ar/viewer.ftl +627 -0
  1626. package/static/assets/pdfjs/web/locale/ast/viewer.ftl +251 -0
  1627. package/static/assets/pdfjs/web/locale/az/viewer.ftl +307 -0
  1628. package/static/assets/pdfjs/web/locale/be/viewer.ftl +618 -0
  1629. package/static/assets/pdfjs/web/locale/bg/viewer.ftl +451 -0
  1630. package/static/assets/pdfjs/web/locale/bn/viewer.ftl +297 -0
  1631. package/static/assets/pdfjs/web/locale/bo/viewer.ftl +297 -0
  1632. package/static/assets/pdfjs/web/locale/br/viewer.ftl +382 -0
  1633. package/static/assets/pdfjs/web/locale/brx/viewer.ftl +268 -0
  1634. package/static/assets/pdfjs/web/locale/bs/viewer.ftl +618 -0
  1635. package/static/assets/pdfjs/web/locale/ca/viewer.ftl +343 -0
  1636. package/static/assets/pdfjs/web/locale/cak/viewer.ftl +341 -0
  1637. package/static/assets/pdfjs/web/locale/ckb/viewer.ftl +292 -0
  1638. package/static/assets/pdfjs/web/locale/cs/viewer.ftl +621 -0
  1639. package/static/assets/pdfjs/web/locale/cy/viewer.ftl +627 -0
  1640. package/static/assets/pdfjs/web/locale/da/viewer.ftl +615 -0
  1641. package/static/assets/pdfjs/web/locale/de/viewer.ftl +615 -0
  1642. package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +621 -0
  1643. package/static/assets/pdfjs/web/locale/el/viewer.ftl +615 -0
  1644. package/static/assets/pdfjs/web/locale/en-CA/viewer.ftl +615 -0
  1645. package/static/assets/pdfjs/web/locale/en-GB/viewer.ftl +615 -0
  1646. package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +667 -0
  1647. package/static/assets/pdfjs/web/locale/eo/viewer.ftl +615 -0
  1648. package/static/assets/pdfjs/web/locale/es-AR/viewer.ftl +615 -0
  1649. package/static/assets/pdfjs/web/locale/es-CL/viewer.ftl +615 -0
  1650. package/static/assets/pdfjs/web/locale/es-ES/viewer.ftl +615 -0
  1651. package/static/assets/pdfjs/web/locale/es-MX/viewer.ftl +580 -0
  1652. package/static/assets/pdfjs/web/locale/et/viewer.ftl +319 -0
  1653. package/static/assets/pdfjs/web/locale/eu/viewer.ftl +619 -0
  1654. package/static/assets/pdfjs/web/locale/fa/viewer.ftl +378 -0
  1655. package/static/assets/pdfjs/web/locale/ff/viewer.ftl +297 -0
  1656. package/static/assets/pdfjs/web/locale/fi/viewer.ftl +615 -0
  1657. package/static/assets/pdfjs/web/locale/fr/viewer.ftl +611 -0
  1658. package/static/assets/pdfjs/web/locale/fur/viewer.ftl +615 -0
  1659. package/static/assets/pdfjs/web/locale/fy-NL/viewer.ftl +615 -0
  1660. package/static/assets/pdfjs/web/locale/ga-IE/viewer.ftl +263 -0
  1661. package/static/assets/pdfjs/web/locale/gd/viewer.ftl +343 -0
  1662. package/static/assets/pdfjs/web/locale/gl/viewer.ftl +615 -0
  1663. package/static/assets/pdfjs/web/locale/gn/viewer.ftl +614 -0
  1664. package/static/assets/pdfjs/web/locale/gu-IN/viewer.ftl +297 -0
  1665. package/static/assets/pdfjs/web/locale/he/viewer.ftl +615 -0
  1666. package/static/assets/pdfjs/web/locale/hi-IN/viewer.ftl +297 -0
  1667. package/static/assets/pdfjs/web/locale/hr/viewer.ftl +618 -0
  1668. package/static/assets/pdfjs/web/locale/hsb/viewer.ftl +621 -0
  1669. package/static/assets/pdfjs/web/locale/hu/viewer.ftl +615 -0
  1670. package/static/assets/pdfjs/web/locale/hy-AM/viewer.ftl +314 -0
  1671. package/static/assets/pdfjs/web/locale/hye/viewer.ftl +318 -0
  1672. package/static/assets/pdfjs/web/locale/ia/viewer.ftl +615 -0
  1673. package/static/assets/pdfjs/web/locale/id/viewer.ftl +603 -0
  1674. package/static/assets/pdfjs/web/locale/is/viewer.ftl +600 -0
  1675. package/static/assets/pdfjs/web/locale/it/viewer.ftl +623 -0
  1676. package/static/assets/pdfjs/web/locale/ja/viewer.ftl +603 -0
  1677. package/static/assets/pdfjs/web/locale/ka/viewer.ftl +615 -0
  1678. package/static/assets/pdfjs/web/locale/kab/viewer.ftl +595 -0
  1679. package/static/assets/pdfjs/web/locale/kk/viewer.ftl +603 -0
  1680. package/static/assets/pdfjs/web/locale/km/viewer.ftl +273 -0
  1681. package/static/assets/pdfjs/web/locale/kn/viewer.ftl +263 -0
  1682. package/static/assets/pdfjs/web/locale/ko/viewer.ftl +603 -0
  1683. package/static/assets/pdfjs/web/locale/lij/viewer.ftl +297 -0
  1684. package/static/assets/pdfjs/web/locale/lo/viewer.ftl +343 -0
  1685. package/static/assets/pdfjs/web/locale/locale.json +1 -0
  1686. package/static/assets/pdfjs/web/locale/lt/viewer.ftl +318 -0
  1687. package/static/assets/pdfjs/web/locale/ltg/viewer.ftl +296 -0
  1688. package/static/assets/pdfjs/web/locale/lv/viewer.ftl +297 -0
  1689. package/static/assets/pdfjs/web/locale/meh/viewer.ftl +137 -0
  1690. package/static/assets/pdfjs/web/locale/mk/viewer.ftl +265 -0
  1691. package/static/assets/pdfjs/web/locale/ml/viewer.ftl +524 -0
  1692. package/static/assets/pdfjs/web/locale/mr/viewer.ftl +289 -0
  1693. package/static/assets/pdfjs/web/locale/ms/viewer.ftl +297 -0
  1694. package/static/assets/pdfjs/web/locale/my/viewer.ftl +256 -0
  1695. package/static/assets/pdfjs/web/locale/nb-NO/viewer.ftl +615 -0
  1696. package/static/assets/pdfjs/web/locale/ne-NP/viewer.ftl +284 -0
  1697. package/static/assets/pdfjs/web/locale/nl/viewer.ftl +615 -0
  1698. package/static/assets/pdfjs/web/locale/nn-NO/viewer.ftl +609 -0
  1699. package/static/assets/pdfjs/web/locale/oc/viewer.ftl +436 -0
  1700. package/static/assets/pdfjs/web/locale/pa-IN/viewer.ftl +615 -0
  1701. package/static/assets/pdfjs/web/locale/pl/viewer.ftl +618 -0
  1702. package/static/assets/pdfjs/web/locale/pt-BR/viewer.ftl +615 -0
  1703. package/static/assets/pdfjs/web/locale/pt-PT/viewer.ftl +615 -0
  1704. package/static/assets/pdfjs/web/locale/rm/viewer.ftl +615 -0
  1705. package/static/assets/pdfjs/web/locale/ro/viewer.ftl +302 -0
  1706. package/static/assets/pdfjs/web/locale/ru/viewer.ftl +618 -0
  1707. package/static/assets/pdfjs/web/locale/sat/viewer.ftl +355 -0
  1708. package/static/assets/pdfjs/web/locale/sc/viewer.ftl +394 -0
  1709. package/static/assets/pdfjs/web/locale/scn/viewer.ftl +124 -0
  1710. package/static/assets/pdfjs/web/locale/sco/viewer.ftl +314 -0
  1711. package/static/assets/pdfjs/web/locale/si/viewer.ftl +301 -0
  1712. package/static/assets/pdfjs/web/locale/sk/viewer.ftl +621 -0
  1713. package/static/assets/pdfjs/web/locale/skr/viewer.ftl +524 -0
  1714. package/static/assets/pdfjs/web/locale/sl/viewer.ftl +621 -0
  1715. package/static/assets/pdfjs/web/locale/son/viewer.ftl +256 -0
  1716. package/static/assets/pdfjs/web/locale/sq/viewer.ftl +606 -0
  1717. package/static/assets/pdfjs/web/locale/sr/viewer.ftl +451 -0
  1718. package/static/assets/pdfjs/web/locale/sv-SE/viewer.ftl +615 -0
  1719. package/static/assets/pdfjs/web/locale/szl/viewer.ftl +307 -0
  1720. package/static/assets/pdfjs/web/locale/ta/viewer.ftl +273 -0
  1721. package/static/assets/pdfjs/web/locale/te/viewer.ftl +289 -0
  1722. package/static/assets/pdfjs/web/locale/tg/viewer.ftl +615 -0
  1723. package/static/assets/pdfjs/web/locale/th/viewer.ftl +603 -0
  1724. package/static/assets/pdfjs/web/locale/tl/viewer.ftl +307 -0
  1725. package/static/assets/pdfjs/web/locale/tr/viewer.ftl +615 -0
  1726. package/static/assets/pdfjs/web/locale/trs/viewer.ftl +247 -0
  1727. package/static/assets/pdfjs/web/locale/uk/viewer.ftl +618 -0
  1728. package/static/assets/pdfjs/web/locale/ur/viewer.ftl +298 -0
  1729. package/static/assets/pdfjs/web/locale/uz/viewer.ftl +237 -0
  1730. package/static/assets/pdfjs/web/locale/vi/viewer.ftl +603 -0
  1731. package/static/assets/pdfjs/web/locale/wo/viewer.ftl +177 -0
  1732. package/static/assets/pdfjs/web/locale/xh/viewer.ftl +262 -0
  1733. package/static/assets/pdfjs/web/locale/zh-CN/viewer.ftl +603 -0
  1734. package/static/assets/pdfjs/web/locale/zh-TW/viewer.ftl +603 -0
  1735. package/static/assets/pdfjs/web/standard_fonts/FoxitDingbats.pfb +0 -0
  1736. package/static/assets/pdfjs/web/standard_fonts/FoxitFixed.pfb +0 -0
  1737. package/static/assets/pdfjs/web/standard_fonts/FoxitFixedBold.pfb +0 -0
  1738. package/static/assets/pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  1739. package/static/assets/pdfjs/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
  1740. package/static/assets/pdfjs/web/standard_fonts/FoxitSerif.pfb +0 -0
  1741. package/static/assets/pdfjs/web/standard_fonts/FoxitSerifBold.pfb +0 -0
  1742. package/static/assets/pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  1743. package/static/assets/pdfjs/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
  1744. package/static/assets/pdfjs/web/standard_fonts/FoxitSymbol.pfb +0 -0
  1745. package/static/assets/pdfjs/web/standard_fonts/LICENSE_FOXIT +27 -0
  1746. package/static/assets/pdfjs/web/standard_fonts/LICENSE_LIBERATION +102 -0
  1747. package/static/assets/pdfjs/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
  1748. package/static/assets/pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  1749. package/static/assets/pdfjs/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
  1750. package/static/assets/pdfjs/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
  1751. package/static/assets/pdfjs/web/viewer.css +6766 -0
  1752. package/static/assets/pdfjs/web/viewer.html +768 -0
  1753. package/static/assets/pdfjs/web/viewer.mjs +17445 -0
  1754. package/static/assets/pdfjs/web/viewer.mjs.map +1 -0
  1755. package/static/assets/pdfjs/web/wasm/LICENSE_OPENJPEG +39 -0
  1756. package/static/assets/pdfjs/web/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
  1757. package/static/assets/pdfjs/web/wasm/LICENSE_PDFJS_QCMS +22 -0
  1758. package/static/assets/pdfjs/web/wasm/LICENSE_QCMS +21 -0
  1759. package/static/assets/pdfjs/web/wasm/openjpeg.wasm +0 -0
  1760. package/static/assets/pdfjs/web/wasm/openjpeg_nowasm_fallback.js +29 -0
  1761. package/static/assets/pdfjs/web/wasm/qcms_bg.wasm +0 -0
  1762. package/static/assets/protected.png +0 -0
  1763. package/static/chunk-2EBPSJJT.js +1 -0
  1764. package/static/chunk-3V7XYPSJ.js +4 -0
  1765. package/static/chunk-4IYQWOGR.js +1 -0
  1766. package/static/chunk-5RFOYHL3.js +1 -0
  1767. package/static/chunk-7PCJMNDR.js +1 -0
  1768. package/static/chunk-7WRQICEB.js +1 -0
  1769. package/static/chunk-AKM2LQUU.js +1 -0
  1770. package/static/chunk-ATFX6EIO.js +1 -0
  1771. package/static/chunk-ATLT5DK5.js +1 -0
  1772. package/static/chunk-DVHXFWN7.js +1 -0
  1773. package/static/chunk-E27KCFP6.js +24 -0
  1774. package/static/chunk-FPEGN42P.js +564 -0
  1775. package/static/chunk-GAL4ENT6.js +1 -0
  1776. package/static/chunk-GWUCWOVK.js +1 -0
  1777. package/static/chunk-I644MKAO.js +1 -0
  1778. package/static/chunk-IFJD2ISM.js +1 -0
  1779. package/static/chunk-IUUTIYHF.js +1 -0
  1780. package/static/chunk-JXZCNFW7.js +1 -0
  1781. package/static/chunk-MEKYVWV4.js +1 -0
  1782. package/static/chunk-MQZEETHL.js +7 -0
  1783. package/static/chunk-NPLV4M2H.js +1 -0
  1784. package/static/chunk-NU3TPXFY.js +4 -0
  1785. package/static/chunk-O4CXCITB.js +1 -0
  1786. package/static/chunk-OWGR4BYT.js +1 -0
  1787. package/static/chunk-QFRQQ4K3.js +1 -0
  1788. package/static/chunk-RAVRSB6R.js +1 -0
  1789. package/static/chunk-RUNMEQOV.js +1 -0
  1790. package/static/chunk-UGSGMP2I.js +1 -0
  1791. package/static/chunk-UV4UIX6J.js +1 -0
  1792. package/static/chunk-VBD7QTEP.js +1 -0
  1793. package/static/chunk-VBWPPICY.js +1 -0
  1794. package/static/chunk-VQRN7HFP.js +1 -0
  1795. package/static/chunk-WTPZUBNX.js +24 -0
  1796. package/static/chunk-XI72YZ2M.js +1 -0
  1797. package/static/chunk-Z6IHRUVL.js +1 -0
  1798. package/static/chunk-ZVPX26RB.js +1 -0
  1799. package/static/chunk-ZZ3LHYOY.js +1 -0
  1800. package/static/favicon.ico +0 -0
  1801. package/static/index.html +19 -0
  1802. package/static/main-ILCPT3IK.js +10 -0
  1803. package/static/media/videogular-54D7AHHD.woff +0 -0
  1804. package/static/media/videogular-H7MSXT3I.eot +0 -0
  1805. package/static/media/videogular-ULU7CHZC.ttf +0 -0
  1806. package/static/media/videogular-WX5DESMV.svg +29 -0
  1807. package/static/polyfills-GNKGQMRJ.js +2 -0
  1808. package/static/prerendered-routes.json +3 -0
  1809. package/static/scripts-MQMRSPYD.js +30 -0
  1810. package/static/styles-TJJDSCD4.css +1 -0
  1811. package/sync-in-server.js +309 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/applications/files/services/files-manager.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 { HttpService } from '@nestjs/axios'\nimport { HttpStatus, Injectable, Logger } from '@nestjs/common'\nimport archiver, { Archiver, ArchiverError } from 'archiver'\nimport { AxiosResponse } from 'axios'\nimport { PNGStream } from 'canvas'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport { pipeline } from 'node:stream/promises'\nimport { extract as extractTar } from 'tar'\nimport { FastifyAuthenticatedRequest } from '../../../authentication/interfaces/auth-request.interface'\nimport { generateThumbnail } from '../../../common/image'\nimport { HTTP_METHOD } from '../../applications.constants'\nimport { SPACE_OPERATION } from '../../spaces/constants/spaces'\nimport { FastifySpaceRequest } from '../../spaces/interfaces/space-request.interface'\nimport { SpaceEnv } from '../../spaces/models/space-env.model'\nimport { realTrashPathFromSpace } from '../../spaces/utils/paths'\nimport { canAccessToSpace, haveSpaceEnvPermissions } from '../../spaces/utils/permissions'\nimport { UserModel } from '../../users/models/user.model'\nimport { DEPTH, LOCK_DEPTH } from '../../webdav/constants/webdav'\nimport { tarGzExtension } from '../constants/compress'\nimport { COMPRESSION_EXTENSION, DEFAULT_HIGH_WATER_MARK } from '../constants/files'\nimport { FILE_OPERATION } from '../constants/operations'\nimport { DOCUMENT_TYPE, SAMPLE_PATH_WITHOUT_EXT } from '../constants/samples'\nimport { CompressFileDto } from '../dto/file-operations.dto'\nimport { FileTaskEvent } from '../events/file-task-event'\nimport { FileDBProps } from '../interfaces/file-db-props.interface'\nimport { FileLock } from '../interfaces/file-lock.interface'\nimport { FileError } from '../models/file-error'\nimport { LockConflict } from '../models/file-lock-error'\nimport {\n checkFileName,\n copyFiles,\n createEmptyFile,\n dirName,\n dirSize,\n fileName,\n fileSize,\n getMimeType,\n isPathExists,\n isPathIsDir,\n makeDir,\n moveFiles,\n removeFiles,\n touchFile,\n uniqueDatedFilePath,\n uniqueFilePathFromDir,\n writeFromStream,\n writeFromStreamAndChecksum\n} from '../utils/files'\nimport { SendFile } from '../utils/send-file'\nimport { extractZip } from '../utils/unzip-file'\nimport { regExpPrivateIP } from '../utils/url-file'\nimport { FilesLockManager } from './files-lock-manager.service'\nimport { FilesQueries } from './files-queries.service'\n\n@Injectable()\nexport class FilesManager {\n /* Spaces permissions are checked in the space guard, except for the copy/move destination */\n private logger = new Logger(FilesManager.name)\n\n constructor(\n private readonly http: HttpService,\n private readonly filesQueries: FilesQueries,\n private readonly filesLockManager: FilesLockManager\n ) {}\n\n sendFileFromSpace(space: SpaceEnv, asAttachment = false, downloadName = ''): SendFile {\n return new SendFile(space.realPath, asAttachment, downloadName)\n }\n\n async saveStream(\n user: UserModel,\n space: SpaceEnv,\n req: FastifyAuthenticatedRequest,\n options: {\n checksumAlg: string\n tmpPath?: string\n }\n ): Promise<string>\n async saveStream(user: UserModel, space: SpaceEnv, req: FastifyAuthenticatedRequest, options?: any): Promise<boolean>\n async saveStream(\n user: UserModel,\n space: SpaceEnv,\n req: FastifyAuthenticatedRequest,\n options?: { dav?: { depth: LOCK_DEPTH; lockTokens: string[] }; checksumAlg?: string; tmpPath?: string }\n ): Promise<boolean | string> {\n // if tmpPath is used, we lock the final destination during the transfer\n // space.realPath is replaced by tmpPath (if allowed), if the move operation failed we remove the tmp file\n const fExists = await isPathExists(space.realPath)\n const fTmpExists = options?.tmpPath ? await isPathExists(options.tmpPath) : false\n if (fExists && req.method === HTTP_METHOD.POST) {\n throw new FileError(HttpStatus.METHOD_NOT_ALLOWED, 'Resource already exists')\n }\n if (fExists && (await isPathIsDir(space.realPath))) {\n throw new FileError(HttpStatus.METHOD_NOT_ALLOWED, 'The location is a directory')\n }\n if (options?.tmpPath) {\n // ensure tmpPath parent dir exists\n await makeDir(dirName(options.tmpPath), true)\n } else if (!(await isPathExists(dirName(space.realPath)))) {\n throw new FileError(HttpStatus.CONFLICT, 'Parent must exists')\n }\n /* File Lock */\n let fileLock: FileLock | undefined\n if (options?.dav) {\n // check locks\n await this.filesLockManager.checkConflicts(space.dbFile, options?.dav?.depth || DEPTH.RESOURCE, {\n userId: user.id,\n lockTokens: options.dav?.lockTokens\n })\n } else {\n // create lock if there is no webdav context\n const [ok, lock] = await this.filesLockManager.create(user, space.dbFile, DEPTH.RESOURCE)\n if (!ok) {\n throw new LockConflict(lock, 'Conflicting lock')\n }\n fileLock = lock\n }\n try {\n // check range\n let startRange = 0\n if ((fExists || fTmpExists) && req.headers['content-range']) {\n // with PUT method, some webdav clients use the `content-range` header,\n // which is normally reserved for a response to a request containing the `range` header.\n // However, for more compatibility let's accept it\n const match = /\\d+/.exec(req.headers['content-range'])\n if (!match.length) {\n throw new FileError(HttpStatus.BAD_REQUEST, 'Content-range : header is malformed')\n }\n startRange = parseInt(match[0], 10)\n const size = await fileSize(options?.tmpPath || space.realPath)\n if (startRange !== size) {\n throw new FileError(HttpStatus.BAD_REQUEST, 'Content-range : start offset does not match the current file size')\n }\n }\n // todo: check file in db to update\n // todo : versioning here\n let checksum: string\n if (options?.checksumAlg) {\n checksum = await writeFromStreamAndChecksum(options?.tmpPath || space.realPath, req.raw, startRange, options.checksumAlg)\n } else {\n await writeFromStream(options?.tmpPath || space.realPath, req.raw, startRange)\n }\n if (options?.tmpPath) {\n try {\n // ensure parent path exists\n await makeDir(path.dirname(space.realPath), true)\n // move the uploaded file to destination\n await moveFiles(options.tmpPath, space.realPath, true)\n } catch (e) {\n // cleanup tmp file\n await removeFiles(options.tmpPath)\n this.logger.error(`${this.saveStream.name} - unable to move ${options.tmpPath} -> ${space.realPath} : ${e}`)\n throw new FileError(HttpStatus.INTERNAL_SERVER_ERROR, 'Unable to move tmp file to dst file')\n }\n }\n if (options?.checksumAlg) {\n return checksum\n }\n return fExists\n } finally {\n if (fileLock) {\n try {\n await this.filesLockManager.removeLock(fileLock.key)\n } catch (e) {\n this.logger.warn(`Failed to remove lock ${fileLock.key}: ${e}`)\n }\n }\n }\n }\n\n async saveMultipart(user: UserModel, space: SpaceEnv, req: FastifySpaceRequest) {\n /* Accepted methods:\n POST: create new resource\n PUT: create or update new resource (even if parent path does not exist)\n */\n const realParentPath = dirName(space.realPath)\n\n if (req.method === HTTP_METHOD.POST) {\n if (await isPathExists(space.realPath)) {\n throw new FileError(HttpStatus.BAD_REQUEST, 'Resource already exists')\n }\n if (!(await isPathExists(realParentPath))) {\n throw new FileError(HttpStatus.BAD_REQUEST, 'Parent must exists')\n }\n if (!(await isPathIsDir(realParentPath))) {\n throw new FileError(HttpStatus.BAD_REQUEST, 'Parent must be a directory')\n }\n }\n\n const basePath = realParentPath + path.sep\n\n for await (const part of req.files()) {\n // part.filename may contain a path like foo/bar.txt.\n const dstFile = path.resolve(basePath, part.filename)\n // prevent path traversal\n if (!dstFile.startsWith(basePath)) {\n throw new FileError(HttpStatus.FORBIDDEN, 'Location is not allowed')\n }\n // make dir in space\n const dstDir = dirName(dstFile)\n if (!(await isPathExists(dstDir))) {\n await makeDir(dstDir, true)\n }\n // create lock\n const dbFile = { ...space.dbFile, path: path.join(dirName(space.dbFile.path), part.filename) }\n const [ok, fileLock] = await this.filesLockManager.create(user, dbFile, DEPTH.RESOURCE)\n if (!ok) throw new LockConflict(fileLock, 'Conflicting lock')\n // do\n try {\n await pipeline(part.file, fs.createWriteStream(dstFile, { highWaterMark: DEFAULT_HIGH_WATER_MARK }))\n } finally {\n await this.filesLockManager.removeLock(fileLock.key)\n }\n }\n }\n\n async touch(user: UserModel, space: SpaceEnv, mtime: number, checkLocks = true): Promise<void> {\n if (!(await isPathExists(space.realPath))) {\n throw new FileError(HttpStatus.NOT_FOUND, 'Location not found')\n }\n if (checkLocks) {\n await this.filesLockManager.checkConflicts(space.dbFile, DEPTH.RESOURCE, { userId: user.id })\n }\n // todo: update mtime in last files ( & in db file ?)\n await touchFile(space.realPath, mtime)\n }\n\n async mkFile(user: UserModel, space: SpaceEnv, overwrite = false, checkLocks = true, checkDocument = false): Promise<void> {\n checkFileName(space.realPath)\n if (!overwrite && (await isPathExists(space.realPath))) {\n throw new FileError(HttpStatus.BAD_REQUEST, 'Resource already exists')\n }\n if (checkLocks) {\n await this.filesLockManager.checkConflicts(space.dbFile, DEPTH.RESOURCE, { userId: user.id })\n }\n // use sample documents when possible\n const fileExtension = path.extname(space.realPath)\n if (checkDocument && fileExtension !== '.txt' && Object.values(DOCUMENT_TYPE).indexOf(fileExtension) > -1) {\n const srcSample = path.join(__dirname, `${SAMPLE_PATH_WITHOUT_EXT}${fileExtension}`)\n await copyFiles(srcSample, space.realPath)\n return touchFile(space.realPath)\n } else {\n return createEmptyFile(space.realPath)\n }\n }\n\n async mkDir(user: UserModel, space: SpaceEnv, recursive = false, dav?: { depth: LOCK_DEPTH; lockTokens: string[] }): Promise<void> {\n checkFileName(space.realPath)\n if (!recursive) {\n if (await isPathExists(space.realPath)) {\n throw new FileError(HttpStatus.METHOD_NOT_ALLOWED, 'Resource already exists')\n } else if (!(await isPathExists(dirName(space.realPath)))) {\n throw new FileError(HttpStatus.CONFLICT, 'Parent must exists')\n }\n }\n await this.filesLockManager.checkConflicts(space.dbFile, dav?.depth || DEPTH.RESOURCE, { userId: user.id, lockTokens: dav?.lockTokens })\n await makeDir(space.realPath, recursive)\n }\n\n async copyMove(\n user: UserModel,\n srcSpace: SpaceEnv,\n dstSpace: SpaceEnv,\n isMove: boolean,\n overwrite = false,\n dav?: { depth: LOCK_DEPTH; lockTokens: string[] }\n ): Promise<void> {\n // checks\n if (!canAccessToSpace(user, dstSpace)) {\n this.logger.warn(`${this.copyMove.name} - is not allowed to access to this space repository : ${dstSpace.repository}`)\n throw new FileError(HttpStatus.FORBIDDEN, 'You are not allowed to access to this repository')\n }\n if (!haveSpaceEnvPermissions(dstSpace, SPACE_OPERATION.ADD)) {\n this.logger.warn(`${this.copyMove.name} - is not allowed to copy/move on this space : *${dstSpace.alias}* (${dstSpace.id}) : ${dstSpace.url}`)\n throw new FileError(HttpStatus.FORBIDDEN, 'You are not allowed to copy/move on the destination')\n }\n if (dstSpace.quotaIsExceeded) {\n this.logger.warn(`${this.copyMove.name} - quota is exceeded for *${dstSpace.alias}* (${dstSpace.id})`)\n throw new FileError(HttpStatus.INSUFFICIENT_STORAGE, 'Quota is exceeded')\n }\n if (!(await isPathExists(srcSpace.realPath))) {\n throw new FileError(HttpStatus.NOT_FOUND, 'Location not found')\n }\n if (!(await isPathExists(dirName(dstSpace.realPath)))) {\n throw new FileError(HttpStatus.CONFLICT, 'Parent must exists')\n }\n if (srcSpace.realPath === dstSpace.realPath) {\n throw new FileError(HttpStatus.FORBIDDEN, 'Cannot copy/move source onto itself')\n }\n if (`${dstSpace.realPath}/`.startsWith(`${srcSpace.realPath}/`)) {\n throw new FileError(HttpStatus.FORBIDDEN, 'Cannot copy/move source below itself')\n }\n if (dirName(srcSpace.url) === dirName(dstSpace.url) && dirName(srcSpace.realPath) !== dirName(dstSpace.realPath)) {\n /* Handle renaming a space file with the same name as a space root :\n srcSpace.url = '/space/sync-in/code2.ts' (a space file)\n srcSpace.realPath = '/home/sync-in/spaces/sync-in/code2.ts\n dstSpace.url = '/space/sync-in/code.ts' (a space root)\n dstSpace.realPath = '/home/sync-in/users/jo/files/code2.ts !!\n */\n throw new FileError(HttpStatus.BAD_REQUEST, 'An anchored file already has this name')\n }\n if (!overwrite && (await isPathExists(dstSpace.realPath))) {\n /* Handle case-sensitive (in renaming context):\n srcSpace.url = '/space/sync-in/code.ts'\n dstSpace.url = '/space/sync-in/code.TS'\n The destination exists because it's the same file, bypass this\n */\n if (!(isMove && srcSpace.realPath.toLowerCase() === dstSpace.realPath.toLowerCase())) {\n throw new FileError(dav ? HttpStatus.PRECONDITION_FAILED : HttpStatus.BAD_REQUEST, 'The destination already exists')\n }\n }\n\n const isDir = await isPathIsDir(srcSpace.realPath)\n\n if (dstSpace.storageQuota) {\n /* Skip validation when moving to the same space; for copy operations, run all checks. */\n if (!isMove || (isMove && srcSpace.id !== dstSpace.id)) {\n const size = isDir ? (await dirSize(srcSpace.realPath))[0] : await fileSize(srcSpace.realPath)\n if (dstSpace.willExceedQuota(size)) {\n this.logger.warn(`${this.copyMove.name} - quota will be exceeded for *${dstSpace.alias}* (${dstSpace.id})`)\n throw new FileError(HttpStatus.INSUFFICIENT_STORAGE, 'Quota will be exceeded')\n }\n }\n }\n\n // check lock conflicts on source & destination\n let recursive: boolean\n let depth: LOCK_DEPTH\n if (dav?.depth) {\n recursive = dav.depth === DEPTH.INFINITY\n depth = dav.depth\n } else {\n recursive = isDir\n depth = recursive ? DEPTH.INFINITY : DEPTH.RESOURCE\n }\n if (isMove) {\n // check source\n await this.filesLockManager.checkConflicts(srcSpace.dbFile, depth, { userId: user.id, lockTokens: dav?.lockTokens })\n }\n // check destination\n await this.filesLockManager.checkConflicts(dstSpace.dbFile, depth, { userId: user.id, lockTokens: dav?.lockTokens })\n\n // overwrite\n if (overwrite && (await isPathExists(dstSpace.realPath))) {\n // todo : versioning here\n await this.delete(user, dstSpace)\n }\n\n // send to task watcher\n if (srcSpace.task?.cacheKey) {\n if (!isDir) srcSpace.task.props.totalSize = await fileSize(srcSpace.realPath)\n FileTaskEvent.emit('startWatch', srcSpace, isMove ? FILE_OPERATION.MOVE : FILE_OPERATION.COPY, dstSpace.realPath)\n }\n\n // do\n if (isMove) {\n await moveFiles(srcSpace.realPath, dstSpace.realPath, overwrite)\n return this.filesQueries.moveFiles(srcSpace.dbFile, dstSpace.dbFile, isDir)\n }\n return copyFiles(srcSpace.realPath, dstSpace.realPath, overwrite, recursive)\n }\n\n async delete(user: UserModel, space: SpaceEnv, dav?: { lockTokens: string[] }): Promise<void> {\n if (!(await isPathExists(space.realPath))) {\n throw new FileError(HttpStatus.NOT_FOUND, 'Location not found')\n }\n // check lock conflicts\n const isDir = await isPathIsDir(space.realPath)\n await this.filesLockManager.checkConflicts(space.dbFile, isDir ? DEPTH.INFINITY : DEPTH.RESOURCE, {\n userId: user.id,\n lockTokens: dav?.lockTokens\n })\n // file system deletion\n let forceDeleteInDB = false\n if (space.inTrashRepository) {\n await removeFiles(space.realPath)\n } else {\n const baseTrashPath = realTrashPathFromSpace(user, space)\n if (baseTrashPath) {\n const name = fileName(space.realPath)\n const trashDir = path.join(baseTrashPath, dirName(space.dbFile.path))\n const trashFile = path.join(trashDir, name)\n if (!(await isPathExists(trashDir))) {\n await makeDir(trashDir, true)\n }\n if (await isPathExists(trashFile)) {\n // if a resource already exists in the trash, rename it with the date\n const dstTrash = await uniqueDatedFilePath(trashFile)\n // move the resource on fs\n await moveFiles(trashFile, dstTrash.path)\n // move the resource in db\n const trashFileDB: FileDBProps = { ...space.dbFile, inTrash: true }\n const dstTrashFileDB: FileDBProps = { ...trashFileDB, path: path.join(dirName(trashFileDB.path), fileName(dstTrash.path)) }\n this.filesQueries\n .moveFiles(trashFileDB, dstTrashFileDB, dstTrash.isDir)\n .catch((e: Error) => this.logger.error(`${this.delete.name} - ${e}`))\n }\n await moveFiles(space.realPath, trashFile, true)\n } else {\n this.logger.log(`Unable to find trash path for space - *${space.alias}* (${space.id}) : delete permanently : ${space.realPath}`)\n // todo: define a default trash for external paths\n forceDeleteInDB = true\n await removeFiles(space.realPath)\n }\n }\n // remove locks, these locks have already been checked in the `checkConflicts` function\n if (isDir) {\n this.filesLockManager.removeChildLocks(user, space.dbFile).catch((e: Error) => this.logger.error(`${this.delete.name} - ${e}`))\n }\n for (const lock of await this.filesLockManager.getLocksByPath(space.dbFile)) {\n this.filesLockManager.removeLock(lock.key).catch((e: Error) => this.logger.error(`${this.delete.name} - ${e}`))\n }\n // delete or move to trash the files in db\n return this.filesQueries.deleteFiles(space.dbFile, isDir, forceDeleteInDB)\n }\n\n async downloadFromUrl(user: UserModel, space: SpaceEnv, url: string): Promise<void> {\n this.logger.log(`${this.downloadFromUrl.name} : ${url}`)\n // create lock\n const rPath = await uniqueFilePathFromDir(space.realPath)\n const dbFile = space.dbFile\n dbFile.path = path.join(dirName(dbFile.path), fileName(space.realPath))\n const [ok, fileLock] = await this.filesLockManager.create(user, dbFile, DEPTH.RESOURCE)\n if (!ok) {\n throw new LockConflict(fileLock, 'Conflicting lock')\n }\n // tasking\n if (space.task.cacheKey) {\n let headRes: AxiosResponse\n\n try {\n headRes = await this.http.axiosRef({ method: HTTP_METHOD.HEAD, url: url, maxRedirects: 1 })\n } catch (e) {\n // release lock\n await this.filesLockManager.removeLock(fileLock.key)\n this.logger.error(`${this.downloadFromUrl.name} - ${url} : ${e}`)\n throw new FileError(HttpStatus.BAD_REQUEST, 'Unable to download file')\n }\n\n if (regExpPrivateIP.test(headRes.request.socket.remoteAddress)) {\n // release lock\n await this.filesLockManager.removeLock(fileLock.key)\n // prevent SSRF attack\n throw new FileError(HttpStatus.FORBIDDEN, 'Access to internal IP addresses is forbidden')\n }\n\n // attempt to retrieve the Content-Length header\n try {\n if ('content-length' in headRes.headers) {\n space.task.props.totalSize = parseInt(headRes.headers['content-length'], 10) || null\n }\n } catch (e) {\n this.logger.debug(`${this.downloadFromUrl.name} - content-length : ${e}`)\n }\n FileTaskEvent.emit('startWatch', space, FILE_OPERATION.DOWNLOAD, rPath)\n }\n // do\n try {\n const getRes = await this.http.axiosRef({ method: HTTP_METHOD.GET, url: url, responseType: 'stream', maxRedirects: 1 })\n if (regExpPrivateIP.test(getRes.request.socket.remoteAddress)) {\n // Prevent SSRF attacks and perform a DNS-rebinding check if a HEAD request has already been made\n throw new FileError(HttpStatus.FORBIDDEN, 'Access to internal IP addresses is forbidden')\n }\n await writeFromStream(rPath, getRes.data)\n } finally {\n // release lock\n await this.filesLockManager.removeLock(fileLock.key)\n }\n }\n\n async compress(user: UserModel, space: SpaceEnv, dto: CompressFileDto): Promise<void> {\n // This method is currently used only by files-methods.service, which handles input sanitization.\n // If it is used in other services in the future, make sure to refactor accordingly to sanitize inputs properly.\n const srcPath = dirName(space.realPath)\n // todo: a guest link tasksPath should be in specific directory (guest link has no home)\n const archiveExt = dto.name.endsWith(dto.extension) ? '' : `.${dto.extension}`\n const dstPath = await uniqueFilePathFromDir(path.join(dto.compressInDirectory ? srcPath : user.tasksPath, `${dto.name}${archiveExt}`))\n const archive: Archiver = archiver('tar', {\n gzip: dto.extension === tarGzExtension,\n gzipOptions: {\n level: 9\n }\n })\n // create lock\n let fileLock: FileLock\n if (dto.compressInDirectory) {\n const dbFile = space.dbFile\n dbFile.path = path.join(dirName(dbFile.path), fileName(dstPath))\n const [ok, lock] = await this.filesLockManager.create(user, dbFile, DEPTH.RESOURCE)\n if (!ok) {\n throw new LockConflict(lock, 'Conflicting lock')\n }\n fileLock = lock\n }\n if (space.task?.cacheKey) {\n space.task.props.compressInDirectory = dto.compressInDirectory\n FileTaskEvent.emit('startWatch', space, FILE_OPERATION.COMPRESS, dstPath)\n }\n // do\n try {\n archive.on('error', (error: ArchiverError) => {\n throw error\n })\n const dstStream = fs.createWriteStream(dstPath, { highWaterMark: DEFAULT_HIGH_WATER_MARK })\n archive.pipe(dstStream)\n for (const f of dto.files) {\n if (await isPathIsDir(f.path)) {\n archive.directory(f.path, dto.files.length > 1 ? fileName(f.path) : false)\n } else {\n archive.file(f.path, {\n name: f.rootAlias ? f.name : fileName(f.path)\n })\n }\n }\n await archive.finalize()\n } finally {\n if (fileLock) {\n await this.filesLockManager.removeLock(fileLock.key)\n }\n }\n }\n\n async decompress(user: UserModel, space: SpaceEnv): Promise<void> {\n // checks\n if (!(await isPathExists(space.realPath))) {\n throw new FileError(HttpStatus.NOT_FOUND, 'Location not found')\n }\n const extension = path.extname(space.realPath)\n if (!COMPRESSION_EXTENSION.has(extension)) {\n throw new FileError(HttpStatus.BAD_REQUEST, `${extension} is not supported`)\n }\n // make destination folder\n const dstPath = await uniqueFilePathFromDir(path.join(dirName(space.realPath), path.basename(space.realPath, extension)))\n await makeDir(dstPath)\n // create lock\n const dbFile = space.dbFile\n dbFile.path = path.join(dirName(dbFile.path), fileName(dstPath))\n const [ok, fileLock] = await this.filesLockManager.create(user, dbFile, DEPTH.INFINITY)\n if (!ok) {\n throw new LockConflict(fileLock, 'Conflicting lock')\n }\n // tasking\n if (space.task?.cacheKey) FileTaskEvent.emit('startWatch', space, FILE_OPERATION.DECOMPRESS, dstPath)\n // do\n try {\n if (extension === '.zip') {\n await extractZip(space.realPath, dstPath)\n } else {\n await extractTar({\n file: space.realPath,\n cwd: dstPath,\n gzip: COMPRESSION_EXTENSION.get(extension) === tarGzExtension,\n preserveOwner: false\n })\n }\n } finally {\n await this.filesLockManager.removeLock(fileLock.key)\n }\n }\n\n async generateThumbnail(space: SpaceEnv, size: number): Promise<PNGStream> {\n if (!(await isPathExists(space.realPath))) {\n throw new FileError(HttpStatus.NOT_FOUND, 'Location not found')\n }\n if (getMimeType(space.realPath, false).indexOf('image') === -1) {\n throw new FileError(HttpStatus.BAD_REQUEST, 'File is not an image')\n }\n try {\n return generateThumbnail(space.realPath, size)\n } catch (e) {\n this.logger.warn(e)\n throw new FileError(HttpStatus.BAD_REQUEST, 'File is not an image')\n }\n }\n}\n"],"names":["FilesManager","sendFileFromSpace","space","asAttachment","downloadName","SendFile","realPath","saveStream","user","req","options","fExists","isPathExists","fTmpExists","tmpPath","method","HTTP_METHOD","POST","FileError","HttpStatus","METHOD_NOT_ALLOWED","isPathIsDir","makeDir","dirName","CONFLICT","fileLock","dav","filesLockManager","checkConflicts","dbFile","depth","DEPTH","RESOURCE","userId","id","lockTokens","ok","lock","create","LockConflict","startRange","headers","match","exec","length","BAD_REQUEST","parseInt","size","fileSize","checksum","checksumAlg","writeFromStreamAndChecksum","raw","writeFromStream","path","dirname","moveFiles","e","removeFiles","logger","error","name","INTERNAL_SERVER_ERROR","removeLock","key","warn","saveMultipart","realParentPath","basePath","sep","part","files","dstFile","resolve","filename","startsWith","FORBIDDEN","dstDir","join","pipeline","file","fs","createWriteStream","highWaterMark","DEFAULT_HIGH_WATER_MARK","touch","mtime","checkLocks","NOT_FOUND","touchFile","mkFile","overwrite","checkDocument","checkFileName","fileExtension","extname","Object","values","DOCUMENT_TYPE","indexOf","srcSample","__dirname","SAMPLE_PATH_WITHOUT_EXT","copyFiles","createEmptyFile","mkDir","recursive","copyMove","srcSpace","dstSpace","isMove","canAccessToSpace","repository","haveSpaceEnvPermissions","SPACE_OPERATION","ADD","alias","url","quotaIsExceeded","INSUFFICIENT_STORAGE","toLowerCase","PRECONDITION_FAILED","isDir","storageQuota","dirSize","willExceedQuota","INFINITY","delete","task","cacheKey","props","totalSize","FileTaskEvent","emit","FILE_OPERATION","MOVE","COPY","filesQueries","forceDeleteInDB","inTrashRepository","baseTrashPath","realTrashPathFromSpace","fileName","trashDir","trashFile","dstTrash","uniqueDatedFilePath","trashFileDB","inTrash","dstTrashFileDB","catch","log","removeChildLocks","getLocksByPath","deleteFiles","downloadFromUrl","rPath","uniqueFilePathFromDir","headRes","http","axiosRef","HEAD","maxRedirects","regExpPrivateIP","test","request","socket","remoteAddress","debug","DOWNLOAD","getRes","GET","responseType","data","compress","dto","srcPath","archiveExt","endsWith","extension","dstPath","compressInDirectory","tasksPath","archive","archiver","gzip","tarGzExtension","gzipOptions","level","COMPRESS","on","dstStream","pipe","f","directory","rootAlias","finalize","decompress","COMPRESSION_EXTENSION","has","basename","DECOMPRESS","extractZip","extractTar","cwd","get","preserveOwner","generateThumbnail","getMimeType","Logger"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /*
2
+ * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
+ * This file is part of Sync-in | The open source file sync and share solution
4
+ * See the LICENSE file for licensing details
5
+ */ "use strict";
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ const _axios = require("@nestjs/axios");
10
+ const _testing = require("@nestjs/testing");
11
+ const _constants = require("../../../infrastructure/database/constants");
12
+ const _fileslockmanagerservice = require("./files-lock-manager.service");
13
+ const _filesmanagerservice = require("./files-manager.service");
14
+ const _filesqueriesservice = require("./files-queries.service");
15
+ describe(_filesmanagerservice.FilesManager.name, ()=>{
16
+ let service;
17
+ beforeAll(async ()=>{
18
+ const module = await _testing.Test.createTestingModule({
19
+ providers: [
20
+ {
21
+ provide: _constants.DB_TOKEN_PROVIDER,
22
+ useValue: {}
23
+ },
24
+ {
25
+ provide: _fileslockmanagerservice.FilesLockManager,
26
+ useValue: {}
27
+ },
28
+ {
29
+ provide: _axios.HttpService,
30
+ useValue: {}
31
+ },
32
+ _filesmanagerservice.FilesManager,
33
+ _filesqueriesservice.FilesQueries
34
+ ]
35
+ }).compile();
36
+ service = module.get(_filesmanagerservice.FilesManager);
37
+ });
38
+ it('should be defined', ()=>{
39
+ expect(service).toBeDefined();
40
+ });
41
+ });
42
+
43
+ //# sourceMappingURL=files-manager.service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/applications/files/services/files-manager.service.spec.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { HttpService } from '@nestjs/axios'\nimport { Test, TestingModule } from '@nestjs/testing'\nimport { DB_TOKEN_PROVIDER } from '../../../infrastructure/database/constants'\nimport { FilesLockManager } from './files-lock-manager.service'\nimport { FilesManager } from './files-manager.service'\nimport { FilesQueries } from './files-queries.service'\n\ndescribe(FilesManager.name, () => {\n let service: FilesManager\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n { provide: DB_TOKEN_PROVIDER, useValue: {} },\n { provide: FilesLockManager, useValue: {} },\n {\n provide: HttpService,\n useValue: {}\n },\n FilesManager,\n FilesQueries\n ]\n }).compile()\n\n service = module.get<FilesManager>(FilesManager)\n })\n\n it('should be defined', () => {\n expect(service).toBeDefined()\n })\n})\n"],"names":["describe","FilesManager","name","service","beforeAll","module","Test","createTestingModule","providers","provide","DB_TOKEN_PROVIDER","useValue","FilesLockManager","HttpService","FilesQueries","compile","get","it","expect","toBeDefined"],"mappings":"AAAA;;;;CAIC;;;;uBAE2B;yBACQ;2BACF;yCACD;qCACJ;qCACA;AAE7BA,SAASC,iCAAY,CAACC,IAAI,EAAE;IAC1B,IAAIC;IAEJC,UAAU;QACR,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,WAAW;gBACT;oBAAEC,SAASC,4BAAiB;oBAAEC,UAAU,CAAC;gBAAE;gBAC3C;oBAAEF,SAASG,yCAAgB;oBAAED,UAAU,CAAC;gBAAE;gBAC1C;oBACEF,SAASI,kBAAW;oBACpBF,UAAU,CAAC;gBACb;gBACAV,iCAAY;gBACZa,iCAAY;aACb;QACH,GAAGC,OAAO;QAEVZ,UAAUE,OAAOW,GAAG,CAAef,iCAAY;IACjD;IAEAgB,GAAG,qBAAqB;QACtBC,OAAOf,SAASgB,WAAW;IAC7B;AACF"}
@@ -0,0 +1,180 @@
1
+ /*
2
+ * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
+ * This file is part of Sync-in | The open source file sync and share solution
4
+ * See the LICENSE file for licensing details
5
+ */ "use strict";
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ Object.defineProperty(exports, "FilesMethods", {
10
+ enumerable: true,
11
+ get: function() {
12
+ return FilesMethods;
13
+ }
14
+ });
15
+ const _common = require("@nestjs/common");
16
+ const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
17
+ const _image = require("../../../common/image");
18
+ const _spacesmanagerservice = require("../../spaces/services/spaces-manager.service");
19
+ const _operations = require("../constants/operations");
20
+ const _fileerror = require("../models/file-error");
21
+ const _filelockerror = require("../models/file-lock-error");
22
+ const _files = require("../utils/files");
23
+ const _filesmanagerservice = require("./files-manager.service");
24
+ function _interop_require_default(obj) {
25
+ return obj && obj.__esModule ? obj : {
26
+ default: obj
27
+ };
28
+ }
29
+ function _ts_decorate(decorators, target, key, desc) {
30
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
33
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
34
+ }
35
+ function _ts_metadata(k, v) {
36
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
37
+ }
38
+ let FilesMethods = class FilesMethods {
39
+ async headOrGet(req, res) {
40
+ const sendFile = this.filesManager.sendFileFromSpace(req.space);
41
+ try {
42
+ await sendFile.checks();
43
+ return await sendFile.stream(req, res);
44
+ } catch (e) {
45
+ this.handleError(req.space, req.method, e);
46
+ }
47
+ }
48
+ async upload(req, res) {
49
+ try {
50
+ await this.filesManager.saveMultipart(req.user, req.space, req);
51
+ } catch (e) {
52
+ // if error we need to close the stream
53
+ // req.raw.destroy()
54
+ this.logger.error(`${this.upload.name} - unable to ${_operations.FILE_OPERATION.UPLOAD} ${req.space.url} : ${e}`);
55
+ return res.header('Connection', 'close').status(e.httpCode || 500).send({
56
+ message: e.message
57
+ });
58
+ }
59
+ }
60
+ async make(user, space, makeFileDto) {
61
+ try {
62
+ if (makeFileDto.type === 'directory') {
63
+ return await this.filesManager.mkDir(user, space);
64
+ } else {
65
+ return await this.filesManager.mkFile(user, space, false, true, true);
66
+ }
67
+ } catch (e) {
68
+ this.handleError(space, `${_operations.FILE_OPERATION.MAKE} ${makeFileDto.type}`, e);
69
+ }
70
+ }
71
+ copy(user, space, copyMoveFileDto) {
72
+ return this.copyMove(user, space, copyMoveFileDto, false);
73
+ }
74
+ move(user, space, copyMoveFileDto) {
75
+ return this.copyMove(user, space, copyMoveFileDto, true);
76
+ }
77
+ async delete(user, space) {
78
+ try {
79
+ return await this.filesManager.delete(user, space);
80
+ } catch (e) {
81
+ this.handleError(space, _operations.FILE_OPERATION.DELETE, e);
82
+ }
83
+ }
84
+ async downloadFromUrl(user, space, downloadDto) {
85
+ (0, _files.checkFileName)(space.realPath);
86
+ try {
87
+ return await this.filesManager.downloadFromUrl(user, space, downloadDto.url);
88
+ } catch (e) {
89
+ this.handleError(space, _operations.FILE_OPERATION.DOWNLOAD, e);
90
+ }
91
+ }
92
+ async compress(user, space, compressFileDto) {
93
+ compressFileDto.name = (0, _files.checkFileName)(space.realPath);
94
+ try {
95
+ for (const f of compressFileDto.files){
96
+ // sanitize file name
97
+ f.name = (0, _files.sanitizeName)(f.name);
98
+ // handles the case where the file is an anchored file
99
+ let baseSpace;
100
+ if (f.path) {
101
+ baseSpace = await this.spacesManager.spaceEnv(user, f.path.split('/'));
102
+ f.path = baseSpace.realPath;
103
+ } else {
104
+ if (f.rootAlias) {
105
+ baseSpace = await this.spacesManager.spaceEnv(user, _nodepath.default.join((0, _files.dirName)(space.url), f.rootAlias).split('/'));
106
+ f.path = baseSpace.realPath;
107
+ } else {
108
+ baseSpace = space;
109
+ f.path = _nodepath.default.resolve((0, _files.dirName)(space.realPath), f.name);
110
+ }
111
+ }
112
+ // prevent path traversal
113
+ if (!f.path.startsWith(baseSpace.realBasePath)) {
114
+ return this.handleError(space, _operations.FILE_OPERATION.COMPRESS, new _fileerror.FileError(_common.HttpStatus.FORBIDDEN, `${f.name} not allowed`));
115
+ }
116
+ if (!await (0, _files.isPathExists)(f.path)) {
117
+ return this.handleError(space, _operations.FILE_OPERATION.COMPRESS, new _fileerror.FileError(_common.HttpStatus.NOT_FOUND, `${f.name} does not exist`));
118
+ }
119
+ }
120
+ return await this.filesManager.compress(user, space, compressFileDto);
121
+ } catch (e) {
122
+ this.handleError(space, _operations.FILE_OPERATION.COMPRESS, e);
123
+ }
124
+ }
125
+ async decompress(user, space) {
126
+ try {
127
+ return await this.filesManager.decompress(user, space);
128
+ } catch (e) {
129
+ this.handleError(space, _operations.FILE_OPERATION.DECOMPRESS, e);
130
+ }
131
+ }
132
+ async genThumbnail(space, size) {
133
+ try {
134
+ const pngStream = await this.filesManager.generateThumbnail(space, size);
135
+ return new _common.StreamableFile(pngStream, {
136
+ type: _image.pngMimeType
137
+ });
138
+ } catch (e) {
139
+ this.handleError(space, this.genThumbnail.name, e);
140
+ }
141
+ }
142
+ async copyMove(user, space, copyMoveFileDto, isMove) {
143
+ const dstUrl = _nodepath.default.join(copyMoveFileDto.dstDirectory, copyMoveFileDto.dstName ? copyMoveFileDto.dstName : (0, _files.fileName)(space.realPath));
144
+ let dstSpace;
145
+ try {
146
+ dstSpace = await this.spacesManager.spaceEnv(user, dstUrl.split('/'));
147
+ await this.filesManager.copyMove(user, space, dstSpace, isMove);
148
+ } catch (e) {
149
+ this.handleError(space, isMove ? _operations.FILE_OPERATION.MOVE : _operations.FILE_OPERATION.COPY, e, dstSpace);
150
+ }
151
+ return {
152
+ path: (0, _files.dirName)(dstUrl),
153
+ name: (0, _files.fileName)(dstUrl)
154
+ };
155
+ }
156
+ handleError(space, action, e, dstSpace) {
157
+ this.logger.error(`unable to ${action} ${space.url}${dstSpace?.url ? ` -> ${dstSpace.url}` : ''} : ${e}`);
158
+ if (e instanceof _filelockerror.LockConflict) {
159
+ throw new _common.HttpException('The file is locked', _common.HttpStatus.LOCKED);
160
+ } else if (e instanceof _fileerror.FileError) {
161
+ throw new _common.HttpException(e.message, e.httpCode);
162
+ }
163
+ throw new _common.HttpException(e.message, _common.HttpStatus.INTERNAL_SERVER_ERROR);
164
+ }
165
+ constructor(spacesManager, filesManager){
166
+ this.spacesManager = spacesManager;
167
+ this.filesManager = filesManager;
168
+ this.logger = new _common.Logger(FilesMethods.name);
169
+ }
170
+ };
171
+ FilesMethods = _ts_decorate([
172
+ (0, _common.Injectable)(),
173
+ _ts_metadata("design:type", Function),
174
+ _ts_metadata("design:paramtypes", [
175
+ typeof _spacesmanagerservice.SpacesManager === "undefined" ? Object : _spacesmanagerservice.SpacesManager,
176
+ typeof _filesmanagerservice.FilesManager === "undefined" ? Object : _filesmanagerservice.FilesManager
177
+ ])
178
+ ], FilesMethods);
179
+
180
+ //# sourceMappingURL=files-methods.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/applications/files/services/files-methods.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 { HttpException, HttpStatus, Injectable, Logger, StreamableFile } from '@nestjs/common'\nimport { FastifyReply } from 'fastify'\nimport path from 'node:path'\nimport { pngMimeType } from '../../../common/image'\nimport { FastifySpaceRequest } from '../../spaces/interfaces/space-request.interface'\nimport { SpaceEnv } from '../../spaces/models/space-env.model'\nimport { SpacesManager } from '../../spaces/services/spaces-manager.service'\nimport { UserModel } from '../../users/models/user.model'\nimport { FILE_OPERATION } from '../constants/operations'\nimport { CompressFileDto, CopyMoveFileDto, DownloadFileDto, MakeFileDto } from '../dto/file-operations.dto'\nimport { FileError } from '../models/file-error'\nimport { LockConflict } from '../models/file-lock-error'\nimport { checkFileName, dirName, fileName, isPathExists, sanitizeName } from '../utils/files'\nimport { SendFile } from '../utils/send-file'\nimport { FilesManager } from './files-manager.service'\n\n@Injectable()\nexport class FilesMethods {\n private readonly logger = new Logger(FilesMethods.name)\n\n constructor(\n private readonly spacesManager: SpacesManager,\n private readonly filesManager: FilesManager\n ) {}\n\n async headOrGet(req: FastifySpaceRequest, res: FastifyReply): Promise<StreamableFile> {\n const sendFile: SendFile = this.filesManager.sendFileFromSpace(req.space)\n try {\n await sendFile.checks()\n return await sendFile.stream(req, res)\n } catch (e) {\n this.handleError(req.space, req.method, e)\n }\n }\n\n async upload(req: FastifySpaceRequest, res: FastifyReply): Promise<void> {\n try {\n await this.filesManager.saveMultipart(req.user, req.space, req)\n } catch (e) {\n // if error we need to close the stream\n // req.raw.destroy()\n this.logger.error(`${this.upload.name} - unable to ${FILE_OPERATION.UPLOAD} ${req.space.url} : ${e}`)\n return res\n .header('Connection', 'close')\n .status(e.httpCode || 500)\n .send({ message: e.message })\n }\n }\n\n async make(user: UserModel, space: SpaceEnv, makeFileDto: MakeFileDto): Promise<void> {\n try {\n if (makeFileDto.type === 'directory') {\n return await this.filesManager.mkDir(user, space)\n } else {\n return await this.filesManager.mkFile(user, space, false, true, true)\n }\n } catch (e) {\n this.handleError(space, `${FILE_OPERATION.MAKE} ${makeFileDto.type}`, e)\n }\n }\n\n copy(\n user: UserModel,\n space: SpaceEnv,\n copyMoveFileDto: CopyMoveFileDto\n ): Promise<{\n path: string\n name: string\n }> {\n return this.copyMove(user, space, copyMoveFileDto, false)\n }\n\n move(\n user: UserModel,\n space: SpaceEnv,\n copyMoveFileDto: CopyMoveFileDto\n ): Promise<{\n path: string\n name: string\n }> {\n return this.copyMove(user, space, copyMoveFileDto, true)\n }\n\n async delete(user: UserModel, space: SpaceEnv): Promise<void> {\n try {\n return await this.filesManager.delete(user, space)\n } catch (e) {\n this.handleError(space, FILE_OPERATION.DELETE, e)\n }\n }\n\n async downloadFromUrl(user: UserModel, space: SpaceEnv, downloadDto: DownloadFileDto): Promise<void> {\n checkFileName(space.realPath)\n try {\n return await this.filesManager.downloadFromUrl(user, space, downloadDto.url)\n } catch (e) {\n this.handleError(space, FILE_OPERATION.DOWNLOAD, e)\n }\n }\n\n async compress(user: UserModel, space: SpaceEnv, compressFileDto: CompressFileDto): Promise<void> {\n compressFileDto.name = checkFileName(space.realPath)\n try {\n for (const f of compressFileDto.files) {\n // sanitize file name\n f.name = sanitizeName(f.name)\n // handles the case where the file is an anchored file\n let baseSpace: SpaceEnv\n if (f.path) {\n baseSpace = await this.spacesManager.spaceEnv(user, f.path.split('/'))\n f.path = baseSpace.realPath\n } else {\n if (f.rootAlias) {\n baseSpace = await this.spacesManager.spaceEnv(user, path.join(dirName(space.url), f.rootAlias).split('/'))\n f.path = baseSpace.realPath\n } else {\n baseSpace = space\n f.path = path.resolve(dirName(space.realPath), f.name)\n }\n }\n // prevent path traversal\n if (!f.path.startsWith(baseSpace.realBasePath)) {\n return this.handleError(space, FILE_OPERATION.COMPRESS, new FileError(HttpStatus.FORBIDDEN, `${f.name} not allowed`))\n }\n if (!(await isPathExists(f.path))) {\n return this.handleError(space, FILE_OPERATION.COMPRESS, new FileError(HttpStatus.NOT_FOUND, `${f.name} does not exist`))\n }\n }\n return await this.filesManager.compress(user, space, compressFileDto)\n } catch (e) {\n this.handleError(space, FILE_OPERATION.COMPRESS, e)\n }\n }\n\n async decompress(user: UserModel, space: SpaceEnv): Promise<void> {\n try {\n return await this.filesManager.decompress(user, space)\n } catch (e) {\n this.handleError(space, FILE_OPERATION.DECOMPRESS, e)\n }\n }\n\n async genThumbnail(space: SpaceEnv, size: number): Promise<StreamableFile> {\n try {\n const pngStream = await this.filesManager.generateThumbnail(space, size)\n return new StreamableFile(pngStream, { type: pngMimeType })\n } catch (e) {\n this.handleError(space, this.genThumbnail.name, e)\n }\n }\n\n private async copyMove(\n user: UserModel,\n space: SpaceEnv,\n copyMoveFileDto: CopyMoveFileDto,\n isMove: boolean\n ): Promise<{\n path: string\n name: string\n }> {\n const dstUrl = path.join(copyMoveFileDto.dstDirectory, copyMoveFileDto.dstName ? copyMoveFileDto.dstName : fileName(space.realPath))\n let dstSpace: SpaceEnv\n try {\n dstSpace = await this.spacesManager.spaceEnv(user, dstUrl.split('/'))\n await this.filesManager.copyMove(user, space, dstSpace, isMove)\n } catch (e) {\n this.handleError(space, isMove ? FILE_OPERATION.MOVE : FILE_OPERATION.COPY, e, dstSpace)\n }\n return { path: dirName(dstUrl), name: fileName(dstUrl) }\n }\n\n private handleError(space: SpaceEnv, action: string, e: any, dstSpace?: SpaceEnv) {\n this.logger.error(`unable to ${action} ${space.url}${dstSpace?.url ? ` -> ${dstSpace.url}` : ''} : ${e}`)\n if (e instanceof LockConflict) {\n throw new HttpException('The file is locked', HttpStatus.LOCKED)\n } else if (e instanceof FileError) {\n throw new HttpException(e.message, e.httpCode)\n }\n throw new HttpException(e.message, HttpStatus.INTERNAL_SERVER_ERROR)\n }\n}\n"],"names":["FilesMethods","headOrGet","req","res","sendFile","filesManager","sendFileFromSpace","space","checks","stream","e","handleError","method","upload","saveMultipart","user","logger","error","name","FILE_OPERATION","UPLOAD","url","header","status","httpCode","send","message","make","makeFileDto","type","mkDir","mkFile","MAKE","copy","copyMoveFileDto","copyMove","move","delete","DELETE","downloadFromUrl","downloadDto","checkFileName","realPath","DOWNLOAD","compress","compressFileDto","f","files","sanitizeName","baseSpace","path","spacesManager","spaceEnv","split","rootAlias","join","dirName","resolve","startsWith","realBasePath","COMPRESS","FileError","HttpStatus","FORBIDDEN","isPathExists","NOT_FOUND","decompress","DECOMPRESS","genThumbnail","size","pngStream","generateThumbnail","StreamableFile","pngMimeType","isMove","dstUrl","dstDirectory","dstName","fileName","dstSpace","MOVE","COPY","action","LockConflict","HttpException","LOCKED","INTERNAL_SERVER_ERROR","Logger"],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /*
2
+ * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
3
+ * This file is part of Sync-in | The open source file sync and share solution
4
+ * See the LICENSE file for licensing details
5
+ */ "use strict";
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ const _testing = require("@nestjs/testing");
10
+ const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
11
+ const _functions = require("../../../common/functions");
12
+ const _cacheservice = require("../../../infrastructure/cache/services/cache.service");
13
+ const _contextmanagerservice = require("../../../infrastructure/context/services/context-manager.service");
14
+ const _constants = require("../../../infrastructure/database/constants");
15
+ const _notificationsmanagerservice = require("../../notifications/services/notifications-manager.service");
16
+ const _sharesmanagerservice = require("../../shares/services/shares-manager.service");
17
+ const _spaces = require("../../spaces/constants/spaces");
18
+ const _spacemodel = require("../../spaces/models/space.model");
19
+ const _spacesmanagerservice = require("../../spaces/services/spaces-manager.service");
20
+ const _spacesqueriesservice = require("../../spaces/services/spaces-queries.service");
21
+ const _usermodel = require("../../users/models/user.model");
22
+ const _usersqueriesservice = require("../../users/services/users-queries.service");
23
+ const _test = require("../../users/utils/test");
24
+ const _compress = require("../constants/compress");
25
+ const _fileoperationsdto = require("../dto/file-operations.dto");
26
+ const _filesmanagerservice = require("./files-manager.service");
27
+ const _filesmethodsservice = require("./files-methods.service");
28
+ function _interop_require_default(obj) {
29
+ return obj && obj.__esModule ? obj : {
30
+ default: obj
31
+ };
32
+ }
33
+ describe(_filesmethodsservice.FilesMethods.name, ()=>{
34
+ let filesMethods;
35
+ let spacesManager;
36
+ let userTest;
37
+ const spaceEnv = {
38
+ id: 1,
39
+ alias: 'project',
40
+ name: 'project',
41
+ enabled: true,
42
+ permissions: 'a:d:m:so',
43
+ role: 0,
44
+ realBasePath: _spacemodel.SpaceModel.getFilesPath('project'),
45
+ realPath: _nodepath.default.join(_spacemodel.SpaceModel.getFilesPath('project'), 'foo'),
46
+ url: `${_spaces.SPACE_REPOSITORY.FILES}/project/foo`
47
+ };
48
+ beforeAll(async ()=>{
49
+ const module = await _testing.Test.createTestingModule({
50
+ imports: [],
51
+ providers: [
52
+ _filesmethodsservice.FilesMethods,
53
+ _spacesmanagerservice.SpacesManager,
54
+ {
55
+ provide: _constants.DB_TOKEN_PROVIDER,
56
+ useValue: {}
57
+ },
58
+ {
59
+ provide: _cacheservice.Cache,
60
+ useValue: {
61
+ get: ()=>null
62
+ }
63
+ },
64
+ {
65
+ provide: _contextmanagerservice.ContextManager,
66
+ useValue: {}
67
+ },
68
+ {
69
+ provide: _notificationsmanagerservice.NotificationsManager,
70
+ useValue: {}
71
+ },
72
+ {
73
+ provide: _usersqueriesservice.UsersQueries,
74
+ useValue: {}
75
+ },
76
+ {
77
+ provide: _sharesmanagerservice.SharesManager,
78
+ useValue: {}
79
+ },
80
+ {
81
+ provide: _spacesqueriesservice.SpacesQueries,
82
+ useValue: {
83
+ permissions: ()=>spaceEnv
84
+ }
85
+ },
86
+ {
87
+ provide: _filesmanagerservice.FilesManager,
88
+ useValue: {}
89
+ }
90
+ ]
91
+ }).compile();
92
+ module.useLogger([
93
+ 'fatal'
94
+ ]);
95
+ filesMethods = module.get(_filesmethodsservice.FilesMethods);
96
+ spacesManager = module.get(_spacesmanagerservice.SpacesManager);
97
+ userTest = new _usermodel.UserModel((0, _test.generateUserTest)());
98
+ // mock
99
+ spacesManager.updateSpacesQuota = jest.fn().mockReturnValue(undefined);
100
+ });
101
+ it('should be defined', ()=>{
102
+ expect(filesMethods).toBeDefined();
103
+ expect(spacesManager).toBeDefined();
104
+ expect(userTest).toBeDefined();
105
+ });
106
+ it('should avoid path traversal on CopyMove action', async ()=>{
107
+ const copyMoveFileDto = {
108
+ dstDirectory: '../../../foo',
109
+ dstName: '../bar/../'
110
+ };
111
+ expect(()=>(0, _functions.transformAndValidate)(_fileoperationsdto.CompressFileDto, copyMoveFileDto)).toThrow();
112
+ await expect(filesMethods.copyMove(userTest, spaceEnv, copyMoveFileDto, false)).rejects.toThrow(/is not valid/i);
113
+ });
114
+ it('should avoid path traversal on Compress action', async ()=>{
115
+ const compressFileDto = {
116
+ name: '../../archive',
117
+ compressInDirectory: false,
118
+ files: [
119
+ {
120
+ name: '../../foo',
121
+ rootAlias: undefined
122
+ }
123
+ ],
124
+ extension: _compress.tarExtension
125
+ };
126
+ expect(()=>(0, _functions.transformAndValidate)(_fileoperationsdto.CompressFileDto, compressFileDto)).toThrow();
127
+ await expect(filesMethods.compress(userTest, spaceEnv, {
128
+ ...compressFileDto
129
+ })).rejects.toThrow(/does not exist/i);
130
+ compressFileDto.files[0].path = '../../../bar/../';
131
+ await expect(filesMethods.compress(userTest, spaceEnv, compressFileDto)).rejects.toThrow(/is not valid/i);
132
+ });
133
+ });
134
+
135
+ //# sourceMappingURL=files-methods.service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../backend/src/applications/files/services/files-methods.service.spec.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { Test, TestingModule } from '@nestjs/testing'\nimport path from 'node:path'\nimport { transformAndValidate } from '../../../common/functions'\nimport { Cache } from '../../../infrastructure/cache/services/cache.service'\nimport { ContextManager } from '../../../infrastructure/context/services/context-manager.service'\nimport { DB_TOKEN_PROVIDER } from '../../../infrastructure/database/constants'\nimport { NotificationsManager } from '../../notifications/services/notifications-manager.service'\nimport { SharesManager } from '../../shares/services/shares-manager.service'\nimport { SPACE_REPOSITORY } from '../../spaces/constants/spaces'\nimport { SpaceEnv } from '../../spaces/models/space-env.model'\nimport { SpaceModel } from '../../spaces/models/space.model'\nimport { SpacesManager } from '../../spaces/services/spaces-manager.service'\nimport { SpacesQueries } from '../../spaces/services/spaces-queries.service'\nimport { UserModel } from '../../users/models/user.model'\nimport { UsersQueries } from '../../users/services/users-queries.service'\nimport { generateUserTest } from '../../users/utils/test'\nimport { tarExtension } from '../constants/compress'\nimport { CompressFileDto, CopyMoveFileDto } from '../dto/file-operations.dto'\nimport { FilesManager } from './files-manager.service'\nimport { FilesMethods } from './files-methods.service'\n\ndescribe(FilesMethods.name, () => {\n let filesMethods: FilesMethods\n let spacesManager: SpacesManager\n let userTest: UserModel\n const spaceEnv: Partial<SpaceEnv> = {\n id: 1,\n alias: 'project',\n name: 'project',\n enabled: true,\n permissions: 'a:d:m:so',\n role: 0,\n realBasePath: SpaceModel.getFilesPath('project'),\n realPath: path.join(SpaceModel.getFilesPath('project'), 'foo'),\n url: `${SPACE_REPOSITORY.FILES}/project/foo`\n }\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n imports: [],\n providers: [\n FilesMethods,\n SpacesManager,\n { provide: DB_TOKEN_PROVIDER, useValue: {} },\n {\n provide: Cache,\n useValue: { get: () => null }\n },\n { provide: ContextManager, useValue: {} },\n {\n provide: NotificationsManager,\n useValue: {}\n },\n { provide: UsersQueries, useValue: {} },\n { provide: SharesManager, useValue: {} },\n {\n provide: SpacesQueries,\n useValue: {\n permissions: () => spaceEnv\n }\n },\n { provide: FilesManager, useValue: {} }\n ]\n }).compile()\n\n module.useLogger(['fatal'])\n filesMethods = module.get<FilesMethods>(FilesMethods)\n spacesManager = module.get<SpacesManager>(SpacesManager)\n userTest = new UserModel(generateUserTest())\n // mock\n spacesManager.updateSpacesQuota = jest.fn().mockReturnValue(undefined)\n })\n\n it('should be defined', () => {\n expect(filesMethods).toBeDefined()\n expect(spacesManager).toBeDefined()\n expect(userTest).toBeDefined()\n })\n\n it('should avoid path traversal on CopyMove action', async () => {\n const copyMoveFileDto = { dstDirectory: '../../../foo', dstName: '../bar/../' } satisfies CopyMoveFileDto\n expect(() => transformAndValidate(CompressFileDto, copyMoveFileDto satisfies CopyMoveFileDto)).toThrow()\n await expect((filesMethods as any).copyMove(userTest, spaceEnv as SpaceEnv, copyMoveFileDto satisfies CopyMoveFileDto, false)).rejects.toThrow(\n /is not valid/i\n )\n })\n\n it('should avoid path traversal on Compress action', async () => {\n const compressFileDto: CompressFileDto = {\n name: '../../archive',\n compressInDirectory: false,\n files: [{ name: '../../foo', rootAlias: undefined }],\n extension: tarExtension as typeof tarExtension\n }\n expect(() => transformAndValidate(CompressFileDto, compressFileDto satisfies CompressFileDto)).toThrow()\n await expect(filesMethods.compress(userTest, spaceEnv as SpaceEnv, { ...(compressFileDto as CompressFileDto) })).rejects.toThrow(\n /does not exist/i\n )\n compressFileDto.files[0].path = '../../../bar/../'\n await expect(filesMethods.compress(userTest, spaceEnv as SpaceEnv, compressFileDto as CompressFileDto)).rejects.toThrow(/is not valid/i)\n })\n})\n"],"names":["describe","FilesMethods","name","filesMethods","spacesManager","userTest","spaceEnv","id","alias","enabled","permissions","role","realBasePath","SpaceModel","getFilesPath","realPath","path","join","url","SPACE_REPOSITORY","FILES","beforeAll","module","Test","createTestingModule","imports","providers","SpacesManager","provide","DB_TOKEN_PROVIDER","useValue","Cache","get","ContextManager","NotificationsManager","UsersQueries","SharesManager","SpacesQueries","FilesManager","compile","useLogger","UserModel","generateUserTest","updateSpacesQuota","jest","fn","mockReturnValue","undefined","it","expect","toBeDefined","copyMoveFileDto","dstDirectory","dstName","transformAndValidate","CompressFileDto","toThrow","copyMove","rejects","compressFileDto","compressInDirectory","files","rootAlias","extension","tarExtension","compress"],"mappings":"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"}