@sync-in/server 1.6.1 → 1.8.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 (277) hide show
  1. package/CHANGELOG.md +169 -55
  2. package/environment/environment.dist.yaml +14 -5
  3. package/migrations/0003_giant_luckman.sql +6 -0
  4. package/migrations/meta/0003_snapshot.json +2463 -0
  5. package/migrations/meta/_journal.json +7 -0
  6. package/package.json +16 -15
  7. package/server/app.bootstrap.js +1 -0
  8. package/server/app.bootstrap.js.map +1 -1
  9. package/server/app.constants.js +0 -4
  10. package/server/app.constants.js.map +1 -1
  11. package/server/app.service.js +7 -6
  12. package/server/app.service.js.map +1 -1
  13. package/server/applications/files/constants/only-office.js +12 -0
  14. package/server/applications/files/constants/only-office.js.map +1 -1
  15. package/server/applications/files/files.config.js +5 -0
  16. package/server/applications/files/files.config.js.map +1 -1
  17. package/server/applications/files/services/files-content-manager.service.js +6 -6
  18. package/server/applications/files/services/files-content-manager.service.js.map +1 -1
  19. package/server/applications/files/services/files-manager.service.js +4 -4
  20. package/server/applications/files/services/files-manager.service.js.map +1 -1
  21. package/server/applications/files/services/files-methods.service.js +5 -3
  22. package/server/applications/files/services/files-methods.service.js.map +1 -1
  23. package/server/applications/files/services/files-only-office-manager.service.js +2 -2
  24. package/server/applications/files/services/files-only-office-manager.service.js.map +1 -1
  25. package/server/applications/files/services/files-parser.service.js +6 -3
  26. package/server/applications/files/services/files-parser.service.js.map +1 -1
  27. package/server/applications/files/services/files-scheduler.service.js +51 -3
  28. package/server/applications/files/services/files-scheduler.service.js.map +1 -1
  29. package/server/applications/files/services/files-search-manager.service.js +4 -0
  30. package/server/applications/files/services/files-search-manager.service.js.map +1 -1
  31. package/server/applications/files/utils/doc-textify/adapters/pdf.js +10 -1
  32. package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -1
  33. package/server/applications/notifications/i18n/de.js +56 -0
  34. package/server/applications/notifications/i18n/de.js.map +1 -0
  35. package/server/applications/notifications/i18n/es.js +52 -0
  36. package/server/applications/notifications/i18n/es.js.map +1 -0
  37. package/server/applications/notifications/i18n/hi.js +52 -0
  38. package/server/applications/notifications/i18n/hi.js.map +1 -0
  39. package/server/applications/notifications/i18n/index.js +73 -8
  40. package/server/applications/notifications/i18n/index.js.map +1 -1
  41. package/server/applications/notifications/i18n/it.js +52 -0
  42. package/server/applications/notifications/i18n/it.js.map +1 -0
  43. package/server/applications/notifications/i18n/ja.js +52 -0
  44. package/server/applications/notifications/i18n/ja.js.map +1 -0
  45. package/server/applications/notifications/i18n/ko.js +52 -0
  46. package/server/applications/notifications/i18n/ko.js.map +1 -0
  47. package/server/applications/notifications/i18n/pl.js +52 -0
  48. package/server/applications/notifications/i18n/pl.js.map +1 -0
  49. package/server/applications/notifications/i18n/pt.js +52 -0
  50. package/server/applications/notifications/i18n/pt.js.map +1 -0
  51. package/server/applications/notifications/i18n/pt_br.js +52 -0
  52. package/server/applications/notifications/i18n/pt_br.js.map +1 -0
  53. package/server/applications/notifications/i18n/ru.js +52 -0
  54. package/server/applications/notifications/i18n/ru.js.map +1 -0
  55. package/server/applications/notifications/i18n/tr.js +52 -0
  56. package/server/applications/notifications/i18n/tr.js.map +1 -0
  57. package/server/applications/notifications/i18n/zh.js +52 -0
  58. package/server/applications/notifications/i18n/zh.js.map +1 -0
  59. package/server/applications/notifications/mails/models.js +6 -7
  60. package/server/applications/notifications/mails/models.js.map +1 -1
  61. package/server/applications/notifications/services/notifications-manager.service.js.map +1 -1
  62. package/server/applications/shares/dto/create-or-update-share.dto.js +11 -0
  63. package/server/applications/shares/dto/create-or-update-share.dto.js.map +1 -1
  64. package/server/applications/shares/interfaces/share-props.interface.js.map +1 -1
  65. package/server/applications/shares/schemas/share.interface.js.map +1 -1
  66. package/server/applications/shares/schemas/shares.schema.js +9 -0
  67. package/server/applications/shares/schemas/shares.schema.js.map +1 -1
  68. package/server/applications/shares/services/shares-manager.service.js +46 -17
  69. package/server/applications/shares/services/shares-manager.service.js.map +1 -1
  70. package/server/applications/shares/services/shares-queries.service.js +24 -5
  71. package/server/applications/shares/services/shares-queries.service.js.map +1 -1
  72. package/server/applications/spaces/constants/cache.js +4 -0
  73. package/server/applications/spaces/constants/cache.js.map +1 -1
  74. package/server/applications/spaces/dto/create-or-update-space.dto.js +5 -0
  75. package/server/applications/spaces/dto/create-or-update-space.dto.js.map +1 -1
  76. package/server/applications/spaces/guards/space.guard.js +3 -3
  77. package/server/applications/spaces/guards/space.guard.js.map +1 -1
  78. package/server/applications/spaces/models/space-props.model.js.map +1 -1
  79. package/server/applications/spaces/models/space.model.js.map +1 -1
  80. package/server/applications/spaces/schemas/space.interface.js.map +1 -1
  81. package/server/applications/spaces/schemas/spaces.schema.js +1 -0
  82. package/server/applications/spaces/schemas/spaces.schema.js.map +1 -1
  83. package/server/applications/spaces/services/spaces-browser.service.js.map +1 -1
  84. package/server/applications/spaces/services/spaces-manager.service.js +34 -31
  85. package/server/applications/spaces/services/spaces-manager.service.js.map +1 -1
  86. package/server/applications/spaces/services/spaces-queries.service.js +23 -7
  87. package/server/applications/spaces/services/spaces-queries.service.js.map +1 -1
  88. package/server/applications/spaces/services/spaces-scheduler.service.js +21 -20
  89. package/server/applications/spaces/services/spaces-scheduler.service.js.map +1 -1
  90. package/server/applications/spaces/spaces.controller.js +4 -2
  91. package/server/applications/spaces/spaces.controller.js.map +1 -1
  92. package/server/applications/spaces/utils/paths.js +14 -16
  93. package/server/applications/spaces/utils/paths.js.map +1 -1
  94. package/server/applications/sync/services/sync-manager.service.js +4 -3
  95. package/server/applications/sync/services/sync-manager.service.js.map +1 -1
  96. package/server/applications/sync/services/sync-paths-manager.service.js +1 -1
  97. package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -1
  98. package/server/applications/sync/services/sync-paths-manager.service.spec.js +1 -1
  99. package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -1
  100. package/server/applications/sync/sync.controller.js +2 -1
  101. package/server/applications/sync/sync.controller.js.map +1 -1
  102. package/server/applications/users/constants/routes.js +5 -0
  103. package/server/applications/users/constants/routes.js.map +1 -1
  104. package/server/applications/users/constants/user.js +0 -16
  105. package/server/applications/users/constants/user.js.map +1 -1
  106. package/server/applications/users/dto/user-properties.dto.js +10 -0
  107. package/server/applications/users/dto/user-properties.dto.js.map +1 -1
  108. package/server/applications/users/models/user.model.js.map +1 -1
  109. package/server/applications/users/schemas/user.interface.js.map +1 -1
  110. package/server/applications/users/schemas/users.schema.js +3 -2
  111. package/server/applications/users/schemas/users.schema.js.map +1 -1
  112. package/server/applications/users/services/admin-users-manager.service.js +1 -0
  113. package/server/applications/users/services/admin-users-manager.service.js.map +1 -1
  114. package/server/applications/users/services/admin-users-manager.service.spec.js +2 -1
  115. package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -1
  116. package/server/applications/users/services/users-manager.service.js +8 -2
  117. package/server/applications/users/services/users-manager.service.js.map +1 -1
  118. package/server/applications/users/services/users-manager.service.spec.js +1 -0
  119. package/server/applications/users/services/users-manager.service.spec.js.map +1 -1
  120. package/server/applications/users/services/users-queries.service.js +18 -4
  121. package/server/applications/users/services/users-queries.service.js.map +1 -1
  122. package/server/applications/users/users.controller.js +15 -0
  123. package/server/applications/users/users.controller.js.map +1 -1
  124. package/server/applications/users/utils/test.js +2 -2
  125. package/server/applications/users/utils/test.js.map +1 -1
  126. package/server/applications/webdav/constants/routes.js +2 -2
  127. package/server/applications/webdav/constants/routes.js.map +1 -1
  128. package/server/applications/webdav/constants/webdav.js +2 -2
  129. package/server/applications/webdav/constants/webdav.js.map +1 -1
  130. package/server/applications/webdav/filters/webdav.filter.js +2 -2
  131. package/server/applications/webdav/filters/webdav.filter.js.map +1 -1
  132. package/server/applications/webdav/filters/webdav.filter.spec.js +2 -2
  133. package/server/applications/webdav/filters/webdav.filter.spec.js.map +1 -1
  134. package/server/applications/webdav/services/webdav-methods.service.js +3 -2
  135. package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
  136. package/server/applications/webdav/utils/webdav.js +1 -2
  137. package/server/applications/webdav/utils/webdav.js.map +1 -1
  138. package/server/authentication/auth.config.js +17 -2
  139. package/server/authentication/auth.config.js.map +1 -1
  140. package/server/authentication/constants/auth-ldap.js +2 -1
  141. package/server/authentication/constants/auth-ldap.js.map +1 -1
  142. package/server/authentication/guards/auth-basic.strategy.js +4 -2
  143. package/server/authentication/guards/auth-basic.strategy.js.map +1 -1
  144. package/server/authentication/guards/auth-local.strategy.js +2 -0
  145. package/server/authentication/guards/auth-local.strategy.js.map +1 -1
  146. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +75 -32
  147. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +1 -1
  148. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +2 -1
  149. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +1 -1
  150. package/server/common/i18n.js +52 -0
  151. package/server/common/i18n.js.map +1 -0
  152. package/server/common/image.js +49 -33
  153. package/server/common/image.js.map +1 -1
  154. package/server/common/interfaces.js.map +1 -1
  155. package/server/common/shared.js +5 -2
  156. package/server/common/shared.js.map +1 -1
  157. package/server/configuration/config.validation.js +3 -3
  158. package/server/configuration/config.validation.js.map +1 -1
  159. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js +8 -6
  160. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js.map +1 -1
  161. package/server/infrastructure/cache/adapters/redis-cache.adapter.js +22 -17
  162. package/server/infrastructure/cache/adapters/redis-cache.adapter.js.map +1 -1
  163. package/server/infrastructure/cache/cache.e2e-spec.js +1 -0
  164. package/server/infrastructure/cache/cache.e2e-spec.js.map +1 -1
  165. package/server/infrastructure/cache/cache.module.js +1 -14
  166. package/server/infrastructure/cache/cache.module.js.map +1 -1
  167. package/server/infrastructure/cache/services/cache.service.js.map +1 -1
  168. package/server/infrastructure/database/database.module.js +20 -1
  169. package/server/infrastructure/database/database.module.js.map +1 -1
  170. package/server/infrastructure/database/utils.js +48 -0
  171. package/server/infrastructure/database/utils.js.map +1 -1
  172. package/server/infrastructure/scheduler/scheduler.module.js +1 -1
  173. package/server/infrastructure/scheduler/scheduler.module.js.map +1 -1
  174. package/server/infrastructure/websocket/adapters/cluster.adapter.js +1 -3
  175. package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -1
  176. package/static/3rdpartylicenses.txt +137 -137
  177. package/static/chunk-2KLC4T2Z.js +1 -0
  178. package/static/chunk-373XVRXW.js +1 -0
  179. package/static/chunk-3GMLWAFZ.js +1 -0
  180. package/static/chunk-3XVM35O2.js +1 -0
  181. package/static/chunk-3YVRP3VM.js +2 -0
  182. package/static/chunk-5NMSIIQB.js +1 -0
  183. package/static/chunk-AF24EYXU.js +1 -0
  184. package/static/chunk-AKQVEHO6.js +2 -0
  185. package/static/{chunk-LUWQFIWR.js → chunk-AY2SZ3G6.js} +1 -1
  186. package/static/chunk-BCVX464U.js +2 -0
  187. package/static/{chunk-IPAC4VAF.js → chunk-BIKLW4YS.js} +1 -1
  188. package/static/chunk-C36MW4ME.js +562 -0
  189. package/static/chunk-CHJ64RJM.js +1 -0
  190. package/static/chunk-DKSEQTMX.js +1 -0
  191. package/static/chunk-DM4NXKEP.js +1 -0
  192. package/static/chunk-DPUVSXRB.js +1 -0
  193. package/static/chunk-DSWEWLXJ.js +1 -0
  194. package/static/chunk-FJE6BOFL.js +1 -0
  195. package/static/chunk-FZ3JPGYZ.js +1 -0
  196. package/static/chunk-GUGNR5TF.js +3 -0
  197. package/static/chunk-H6NE33VX.js +1 -0
  198. package/static/{chunk-S75P2FFI.js → chunk-HAS5ZOTR.js} +1 -1
  199. package/static/chunk-HNQRZALS.js +1 -0
  200. package/static/chunk-JPT5WEAT.js +1 -0
  201. package/static/{chunk-ZQQPUYLU.js → chunk-JSWCNGXJ.js} +1 -1
  202. package/static/chunk-KFJIQIGR.js +1 -0
  203. package/static/chunk-LNTUR3GU.js +1 -0
  204. package/static/chunk-LVM4QB22.js +1 -0
  205. package/static/chunk-M3XVNQZQ.js +1 -0
  206. package/static/{chunk-AWQ2YTVC.js → chunk-MFLIJH6T.js} +1 -1
  207. package/static/{chunk-IQOALFYU.js → chunk-MSUHTBB2.js} +1 -1
  208. package/static/chunk-N3U6637P.js +1 -0
  209. package/static/chunk-NNV4OXSB.js +1 -0
  210. package/static/chunk-NO2LTNW3.js +1 -0
  211. package/static/chunk-OOGP4WSH.js +2 -0
  212. package/static/chunk-PB4AIT7O.js +1 -0
  213. package/static/chunk-PCWDQPOM.js +2 -0
  214. package/static/chunk-PGZZP5W3.js +1 -0
  215. package/static/chunk-PVDHBQRM.js +1 -0
  216. package/static/chunk-Q5KM7LTX.js +1 -0
  217. package/static/chunk-QHC6ZPQ4.js +1 -0
  218. package/static/chunk-QO6BTONN.js +1 -0
  219. package/static/chunk-QZU2S5CV.js +1 -0
  220. package/static/chunk-SBZ572Q4.js +2 -0
  221. package/static/chunk-SHIVUDP3.js +1 -0
  222. package/static/chunk-SLHTEGRU.js +1 -0
  223. package/static/{chunk-SH5EVL4E.js → chunk-SSFF27P2.js} +1 -1
  224. package/static/chunk-TPYBFZS5.js +1 -0
  225. package/static/chunk-UEQCWMXD.js +1 -0
  226. package/static/chunk-UG5DMXYO.js +1 -0
  227. package/static/chunk-UJPPR4MX.js +1 -0
  228. package/static/chunk-UNCPXHHT.js +1 -0
  229. package/static/chunk-URHTCJ7G.js +1 -0
  230. package/static/chunk-V3AT2BKP.js +1 -0
  231. package/static/chunk-VKK5BSLX.js +1 -0
  232. package/static/{chunk-7DN7ZAPU.js → chunk-VM4YX6Q7.js} +1 -1
  233. package/static/chunk-WJW7CT6G.js +27 -0
  234. package/static/{chunk-7ITZXYYJ.js → chunk-WLMNXRBS.js} +1 -1
  235. package/static/chunk-X5XGK6T7.js +4 -0
  236. package/static/chunk-YEKR5OPO.js +1 -0
  237. package/static/chunk-YW57T2PF.js +1 -0
  238. package/static/chunk-Z5J5F5SX.js +1 -0
  239. package/static/chunk-ZIJQRARU.js +1 -0
  240. package/static/chunk-ZPF2DSQV.js +1 -0
  241. package/static/chunk-ZTCRGJ6Y.js +7 -0
  242. package/static/index.html +2 -2
  243. package/static/main-VOL6OMJ5.js +9 -0
  244. package/static/scripts-WRDOQIU5.js +24 -0
  245. package/static/{styles-A5VYX3CE.css → styles-2C2UNCNB.css} +1 -1
  246. package/server/applications/spaces/interfaces/space-quota.interface.js +0 -10
  247. package/server/applications/spaces/interfaces/space-quota.interface.js.map +0 -1
  248. package/static/chunk-22EANI6R.js +0 -1
  249. package/static/chunk-27YQB3TE.js +0 -1
  250. package/static/chunk-2I4CUFUA.js +0 -1
  251. package/static/chunk-2MTM6SWN.js +0 -4
  252. package/static/chunk-34MKICK5.js +0 -27
  253. package/static/chunk-5O3DIUU3.js +0 -1
  254. package/static/chunk-6NMVZIIT.js +0 -1
  255. package/static/chunk-7FUM3JGM.js +0 -1
  256. package/static/chunk-7P27WBGC.js +0 -4
  257. package/static/chunk-ATP3BFHV.js +0 -562
  258. package/static/chunk-DSOE3FEP.js +0 -1
  259. package/static/chunk-EFKMBLRE.js +0 -1
  260. package/static/chunk-FUFKVHPU.js +0 -1
  261. package/static/chunk-HCDLWTMW.js +0 -7
  262. package/static/chunk-JASU3CIH.js +0 -1
  263. package/static/chunk-JQ5FTO2M.js +0 -1
  264. package/static/chunk-JUNZFADM.js +0 -1
  265. package/static/chunk-JXZCNFW7.js +0 -1
  266. package/static/chunk-LJUKI4SQ.js +0 -1
  267. package/static/chunk-ORMRCEGT.js +0 -1
  268. package/static/chunk-Q7D6RN4N.js +0 -1
  269. package/static/chunk-QJX6ITLW.js +0 -1
  270. package/static/chunk-QQ6UQQBR.js +0 -1
  271. package/static/chunk-RTRJ3KFH.js +0 -1
  272. package/static/chunk-S2HDY3OL.js +0 -1
  273. package/static/chunk-T3EYFSVZ.js +0 -1
  274. package/static/chunk-U34OZUZ7.js +0 -1
  275. package/static/chunk-Y7EH7G5K.js +0 -1
  276. package/static/main-7SQDDVMD.js +0 -9
  277. package/static/scripts-VZVAP2P4.js +0 -30
@@ -65,7 +65,21 @@ function _ts_decorate(decorators, target, key, desc) {
65
65
  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;
66
66
  return c > 3 && r && Object.defineProperty(target, key, r), r;
67
67
  }
68
+ function _ts_metadata(k, v) {
69
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
70
+ }
71
+ function _ts_param(paramIndex, decorator) {
72
+ return function(target, key) {
73
+ decorator(target, key, paramIndex);
74
+ };
75
+ }
68
76
  let DatabaseModule = class DatabaseModule {
77
+ async beforeApplicationShutdown() {
78
+ await this.db.session.client.end();
79
+ }
80
+ constructor(db){
81
+ this.db = db;
82
+ }
69
83
  };
70
84
  DatabaseModule = _ts_decorate([
71
85
  (0, _common.Global)(),
@@ -88,7 +102,12 @@ DatabaseModule = _ts_decorate([
88
102
  })
89
103
  })
90
104
  ]
91
- })
105
+ }),
106
+ _ts_param(0, (0, _common.Inject)(_constants.DB_TOKEN_PROVIDER)),
107
+ _ts_metadata("design:type", Function),
108
+ _ts_metadata("design:paramtypes", [
109
+ Object
110
+ ])
92
111
  ], DatabaseModule);
93
112
 
94
113
  //# sourceMappingURL=database.module.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../backend/src/infrastructure/database/database.module.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { DrizzleMySqlConfig, DrizzleMySqlModule } from '@knaadh/nestjs-drizzle-mysql2'\nimport { Global, Module } from '@nestjs/common'\nimport { configuration } from '../../configuration/config.environment'\nimport { DB_TOKEN_PROVIDER } from './constants'\nimport { DatabaseLogger } from './database.logger'\nimport * as schema from './schema'\n\n@Global()\n@Module({\n imports: [\n DrizzleMySqlModule.registerAsync({\n tag: DB_TOKEN_PROVIDER,\n useFactory: async (): Promise<DrizzleMySqlConfig> => ({\n mysql: {\n connection: 'pool',\n config: configuration.mysql.url\n },\n config: {\n schema: { ...schema },\n mode: 'default',\n logger: configuration.mysql.logQueries ? new DatabaseLogger() : false\n }\n })\n })\n ]\n})\nexport class DatabaseModule {}\n"],"names":["DatabaseModule","imports","DrizzleMySqlModule","registerAsync","tag","DB_TOKEN_PROVIDER","useFactory","mysql","connection","config","configuration","url","schema","mode","logger","logQueries","DatabaseLogger"],"mappings":"AAAA;;;;CAIC;;;;+BA4BYA;;;eAAAA;;;qCA1B0C;wBACxB;mCACD;2BACI;gCACH;gEACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBjB,IAAA,AAAMA,iBAAN,MAAMA;AAAgB;;;;QAjB3BC,SAAS;YACPC,uCAAkB,CAACC,aAAa,CAAC;gBAC/BC,KAAKC,4BAAiB;gBACtBC,YAAY,UAA0C,CAAA;wBACpDC,OAAO;4BACLC,YAAY;4BACZC,QAAQC,gCAAa,CAACH,KAAK,CAACI,GAAG;wBACjC;wBACAF,QAAQ;4BACNG,QAAQ;gCAAE,GAAGA,OAAM;4BAAC;4BACpBC,MAAM;4BACNC,QAAQJ,gCAAa,CAACH,KAAK,CAACQ,UAAU,GAAG,IAAIC,8BAAc,KAAK;wBAClE;oBACF,CAAA;YACF;SACD"}
1
+ {"version":3,"sources":["../../../../backend/src/infrastructure/database/database.module.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { DrizzleMySqlConfig, DrizzleMySqlModule } from '@knaadh/nestjs-drizzle-mysql2'\nimport { BeforeApplicationShutdown, Global, Inject, Module } from '@nestjs/common'\nimport { MySql2Client } from 'drizzle-orm/mysql2'\nimport { configuration } from '../../configuration/config.environment'\nimport { DB_TOKEN_PROVIDER } from './constants'\nimport { DatabaseLogger } from './database.logger'\nimport type { DBSchema } from './interfaces/database.interface'\nimport * as schema from './schema'\n\n@Global()\n@Module({\n imports: [\n DrizzleMySqlModule.registerAsync({\n tag: DB_TOKEN_PROVIDER,\n useFactory: async (): Promise<DrizzleMySqlConfig> => ({\n mysql: {\n connection: 'pool',\n config: configuration.mysql.url\n },\n config: {\n schema: { ...schema },\n mode: 'default',\n logger: configuration.mysql.logQueries ? new DatabaseLogger() : false\n }\n })\n })\n ]\n})\nexport class DatabaseModule implements BeforeApplicationShutdown {\n constructor(@Inject(DB_TOKEN_PROVIDER) private readonly db: DBSchema & { session: { client: MySql2Client } }) {}\n\n async beforeApplicationShutdown() {\n await this.db.session.client.end()\n }\n}\n"],"names":["DatabaseModule","beforeApplicationShutdown","db","session","client","end","imports","DrizzleMySqlModule","registerAsync","tag","DB_TOKEN_PROVIDER","useFactory","mysql","connection","config","configuration","url","schema","mode","logger","logQueries","DatabaseLogger"],"mappings":"AAAA;;;;CAIC;;;;+BA8BYA;;;eAAAA;;;qCA5B0C;wBACW;mCAEpC;2BACI;gCACH;gEAEP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBjB,IAAA,AAAMA,iBAAN,MAAMA;IAGX,MAAMC,4BAA4B;QAChC,MAAM,IAAI,CAACC,EAAE,CAACC,OAAO,CAACC,MAAM,CAACC,GAAG;IAClC;IAJA,YAAY,AAA4CH,EAAoD,CAAE;aAAtDA,KAAAA;IAAuD;AAKjH;;;;QAvBEI,SAAS;YACPC,uCAAkB,CAACC,aAAa,CAAC;gBAC/BC,KAAKC,4BAAiB;gBACtBC,YAAY,UAA0C,CAAA;wBACpDC,OAAO;4BACLC,YAAY;4BACZC,QAAQC,gCAAa,CAACH,KAAK,CAACI,GAAG;wBACjC;wBACAF,QAAQ;4BACNG,QAAQ;gCAAE,GAAGA,OAAM;4BAAC;4BACpBC,MAAM;4BACNC,QAAQJ,gCAAa,CAACH,KAAK,CAACQ,UAAU,GAAG,IAAIC,8BAAc,KAAK;wBAClE;oBACF,CAAA;YACF;SACD"}
@@ -36,10 +36,55 @@ _export(exports, {
36
36
  },
37
37
  get dbGetInsertedId () {
38
38
  return dbGetInsertedId;
39
+ },
40
+ get getTablesWithFileIdColumn () {
41
+ return getTablesWithFileIdColumn;
39
42
  }
40
43
  });
41
44
  const _drizzleorm = require("drizzle-orm");
42
45
  const _constants = require("./constants");
46
+ const _schema = /*#__PURE__*/ _interop_require_wildcard(require("./schema"));
47
+ function _getRequireWildcardCache(nodeInterop) {
48
+ if (typeof WeakMap !== "function") return null;
49
+ var cacheBabelInterop = new WeakMap();
50
+ var cacheNodeInterop = new WeakMap();
51
+ return (_getRequireWildcardCache = function(nodeInterop) {
52
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
53
+ })(nodeInterop);
54
+ }
55
+ function _interop_require_wildcard(obj, nodeInterop) {
56
+ if (!nodeInterop && obj && obj.__esModule) {
57
+ return obj;
58
+ }
59
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
60
+ return {
61
+ default: obj
62
+ };
63
+ }
64
+ var cache = _getRequireWildcardCache(nodeInterop);
65
+ if (cache && cache.has(obj)) {
66
+ return cache.get(obj);
67
+ }
68
+ var newObj = {
69
+ __proto__: null
70
+ };
71
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
72
+ for(var key in obj){
73
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
74
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
75
+ if (desc && (desc.get || desc.set)) {
76
+ Object.defineProperty(newObj, key, desc);
77
+ } else {
78
+ newObj[key] = obj[key];
79
+ }
80
+ }
81
+ }
82
+ newObj.default = obj;
83
+ if (cache) {
84
+ cache.set(obj, newObj);
85
+ }
86
+ return newObj;
87
+ }
43
88
  async function dbGetConnection(app, mode = 'pool') {
44
89
  const db = await app.resolve(_constants.DB_TOKEN_PROVIDER);
45
90
  let connection = db['session'].client;
@@ -113,5 +158,8 @@ function concatDistinctObjectsInArray(mustBeNotNull, object) {
113
158
  expr.mapWith(JSON.parse);
114
159
  return expr;
115
160
  }
161
+ function getTablesWithFileIdColumn() {
162
+ return Object.entries(_schema).filter(([_table, columns])=>'fileId' in columns).map(([_table, columns])=>columns);
163
+ }
116
164
 
117
165
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../backend/src/infrastructure/database/utils.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 { NestFastifyApplication } from '@nestjs/platform-fastify'\nimport { TestingModule } from '@nestjs/testing'\nimport { Column, eq, inArray, isNull, SQL, sql } from 'drizzle-orm'\nimport { MySqlDatabase } from 'drizzle-orm/mysql-core'\nimport { MySqlQueryResult } from 'drizzle-orm/mysql2'\nimport { DB_TOKEN_PROVIDER } from './constants'\n\nasync function dbGetConnection(app: NestFastifyApplication | TestingModule, mode: 'pool' | 'client' = 'pool') {\n const db: MySqlDatabase<any, any> = await app.resolve(DB_TOKEN_PROVIDER)\n let connection: any = db['session'].client\n if (mode === 'pool') {\n connection = connection.pool\n }\n return { db, connection }\n}\n\nexport async function dbCloseConnection(app: NestFastifyApplication | TestingModule, mode: 'pool' | 'client' = 'pool') {\n const connection = (await dbGetConnection(app, mode)).connection\n await connection.end()\n}\n\nexport async function dbCheckConnection(app: NestFastifyApplication | TestingModule, mode: 'pool' | 'client' = 'pool') {\n const db = (await dbGetConnection(app, mode)).db\n return Array.isArray(await db.execute(sql`select 1`))\n}\n\nexport function dbCheckAffectedRows(queryResult: MySqlQueryResult, expected: number, throwError = true): boolean {\n const affectedRows = queryResult.at(0).affectedRows\n if (affectedRows !== expected) {\n if (throwError) {\n throw new Error(`The number of rows affected does not match : ${affectedRows}`)\n }\n return false\n }\n return true\n}\n\nexport function dbGetInsertedId(queryResult: MySqlQueryResult): number {\n const insertedId = queryResult.at(0).insertId\n if (!insertedId) {\n throw new Error(`Record was not inserted : ${insertedId}`)\n }\n return insertedId\n}\n\nexport function convertToSelect<T>(table: T, fields: Partial<keyof T>[]) {\n const select = {} as Record<keyof T, any>\n for (const f of fields) {\n select[f] = table[f]\n }\n return select\n}\n\nexport function convertToWhere<T>(table: T, filters: Partial<Record<keyof T, any>>): SQL[] {\n // only handles AND operator\n return Object.entries(filters).map(([k, v]) => {\n if (v === null) return isNull(table[k])\n if (Array.isArray(v)) return inArray(table[k], v)\n return eq(table[k], v)\n })\n}\n\nexport const dateTimeUTC = (dateField: Column): SQL<string> => sql`CONCAT(${sql`${dateField}`}, 'Z')`\n\nexport function concatDistinctObjectsInArray(mustBeNotNull: Column, object: Record<string, Column | object>): SQL<any> {\n /* Concat json objects in array (only one nesting level is supported) */\n const expr: SQL<any> = sql`IFNULL(CONCAT('[', GROUP_CONCAT(DISTINCT IF(${mustBeNotNull} IS NULL, NULL, JSON_OBJECT(`\n const keys = Object.keys(object)\n keys.forEach((k, index) => {\n if (object[k].constructor.name === 'Object') {\n expr.append(sql`${sql.raw(`'${k}'`)},JSON_OBJECT(`)\n const subKeys = Object.keys(object[k])\n subKeys.forEach((subK, subIndex) => {\n expr.append(sql`${sql.raw(`'${subK}'`)},${sql`${object[k][subK]}`}${subIndex === subKeys.length - 1 ? sql`)` : sql`,`}`)\n })\n } else {\n expr.append(sql`${sql.raw(`'${k}'`)},${sql`${object[k]}`}`)\n }\n if (index !== keys.length - 1) {\n expr.append(sql`,`)\n }\n })\n expr.append(sql`))), ']'), JSON_ARRAY())`)\n expr.mapWith(JSON.parse)\n return expr\n}\n"],"names":["concatDistinctObjectsInArray","convertToSelect","convertToWhere","dateTimeUTC","dbCheckAffectedRows","dbCheckConnection","dbCloseConnection","dbGetInsertedId","dbGetConnection","app","mode","db","resolve","DB_TOKEN_PROVIDER","connection","client","pool","end","Array","isArray","execute","sql","queryResult","expected","throwError","affectedRows","at","Error","insertedId","insertId","table","fields","select","f","filters","Object","entries","map","k","v","isNull","inArray","eq","dateField","mustBeNotNull","object","expr","keys","forEach","index","name","append","raw","subKeys","subK","subIndex","length","mapWith","JSON","parse"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../backend/src/infrastructure/database/utils.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 { NestFastifyApplication } from '@nestjs/platform-fastify'\nimport { TestingModule } from '@nestjs/testing'\nimport { Column, eq, inArray, isNull, SQL, sql } from 'drizzle-orm'\nimport { MySqlDatabase, MySqlTableWithColumns } from 'drizzle-orm/mysql-core'\nimport { MySqlQueryResult } from 'drizzle-orm/mysql2'\nimport { DB_TOKEN_PROVIDER } from './constants'\nimport * as schema from './schema'\n\nasync function dbGetConnection(app: NestFastifyApplication | TestingModule, mode: 'pool' | 'client' = 'pool') {\n const db: MySqlDatabase<any, any> = await app.resolve(DB_TOKEN_PROVIDER)\n let connection: any = db['session'].client\n if (mode === 'pool') {\n connection = connection.pool\n }\n return { db, connection }\n}\n\nexport async function dbCloseConnection(app: NestFastifyApplication | TestingModule, mode: 'pool' | 'client' = 'pool') {\n const connection = (await dbGetConnection(app, mode)).connection\n await connection.end()\n}\n\nexport async function dbCheckConnection(app: NestFastifyApplication | TestingModule, mode: 'pool' | 'client' = 'pool') {\n const db = (await dbGetConnection(app, mode)).db\n return Array.isArray(await db.execute(sql`select 1`))\n}\n\nexport function dbCheckAffectedRows(queryResult: MySqlQueryResult, expected: number, throwError = true): boolean {\n const affectedRows = queryResult.at(0).affectedRows\n if (affectedRows !== expected) {\n if (throwError) {\n throw new Error(`The number of rows affected does not match : ${affectedRows}`)\n }\n return false\n }\n return true\n}\n\nexport function dbGetInsertedId(queryResult: MySqlQueryResult): number {\n const insertedId = queryResult.at(0).insertId\n if (!insertedId) {\n throw new Error(`Record was not inserted : ${insertedId}`)\n }\n return insertedId\n}\n\nexport function convertToSelect<T>(table: T, fields: Partial<keyof T>[]) {\n const select = {} as Record<keyof T, any>\n for (const f of fields) {\n select[f] = table[f]\n }\n return select\n}\n\nexport function convertToWhere<T>(table: T, filters: Partial<Record<keyof T, any>>): SQL[] {\n // only handles AND operator\n return Object.entries(filters).map(([k, v]) => {\n if (v === null) return isNull(table[k])\n if (Array.isArray(v)) return inArray(table[k], v)\n return eq(table[k], v)\n })\n}\n\nexport const dateTimeUTC = (dateField: Column): SQL<string> => sql`CONCAT(${sql`${dateField}`}, 'Z')`\n\nexport function concatDistinctObjectsInArray(mustBeNotNull: Column, object: Record<string, Column | object>): SQL<any> {\n /* Concat json objects in array (only one nesting level is supported) */\n const expr: SQL<any> = sql`IFNULL(CONCAT('[', GROUP_CONCAT(DISTINCT IF(${mustBeNotNull} IS NULL, NULL, JSON_OBJECT(`\n const keys = Object.keys(object)\n keys.forEach((k, index) => {\n if (object[k].constructor.name === 'Object') {\n expr.append(sql`${sql.raw(`'${k}'`)},JSON_OBJECT(`)\n const subKeys = Object.keys(object[k])\n subKeys.forEach((subK, subIndex) => {\n expr.append(sql`${sql.raw(`'${subK}'`)},${sql`${object[k][subK]}`}${subIndex === subKeys.length - 1 ? sql`)` : sql`,`}`)\n })\n } else {\n expr.append(sql`${sql.raw(`'${k}'`)},${sql`${object[k]}`}`)\n }\n if (index !== keys.length - 1) {\n expr.append(sql`,`)\n }\n })\n expr.append(sql`))), ']'), JSON_ARRAY())`)\n expr.mapWith(JSON.parse)\n return expr\n}\n\nexport function getTablesWithFileIdColumn(): MySqlTableWithColumns<any>[] {\n return Object.entries(schema)\n .filter(([_table, columns]) => 'fileId' in columns)\n .map(([_table, columns]) => columns as MySqlTableWithColumns<any>)\n}\n"],"names":["concatDistinctObjectsInArray","convertToSelect","convertToWhere","dateTimeUTC","dbCheckAffectedRows","dbCheckConnection","dbCloseConnection","dbGetInsertedId","getTablesWithFileIdColumn","dbGetConnection","app","mode","db","resolve","DB_TOKEN_PROVIDER","connection","client","pool","end","Array","isArray","execute","sql","queryResult","expected","throwError","affectedRows","at","Error","insertedId","insertId","table","fields","select","f","filters","Object","entries","map","k","v","isNull","inArray","eq","dateField","mustBeNotNull","object","expr","keys","forEach","index","name","append","raw","subKeys","subK","subIndex","length","mapWith","JSON","parse","schema","filter","_table","columns"],"mappings":"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"}
@@ -38,7 +38,7 @@ let SchedulerModule = class SchedulerModule {
38
38
  ]
39
39
  };
40
40
  } else {
41
- // do not initialize the ScheduleModule dependency, all calls to Interval, Cron ... will be ignored
41
+ // do not initialize the ScheduleModule dependency; all calls to Interval, Cron ... will be ignored
42
42
  return {
43
43
  module: SchedulerModule
44
44
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../backend/src/infrastructure/scheduler/scheduler.module.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { DynamicModule, Module } from '@nestjs/common'\nimport { ScheduleModule as NestScheduleModule } from '@nestjs/schedule'\nimport cluster from 'node:cluster'\nimport { SCHEDULER_ENV, SCHEDULER_STATE } from './scheduler.constants'\n\n@Module({})\nexport class SchedulerModule {\n static register(): DynamicModule {\n if (cluster.isWorker && process.env[SCHEDULER_ENV] === SCHEDULER_STATE.ENABLED) {\n return {\n global: true,\n module: SchedulerModule,\n imports: [NestScheduleModule.forRoot()]\n }\n } else {\n // do not initialize the ScheduleModule dependency, all calls to Interval, Cron ... will be ignored\n return { module: SchedulerModule }\n }\n }\n}\n"],"names":["SchedulerModule","register","cluster","isWorker","process","env","SCHEDULER_ENV","SCHEDULER_STATE","ENABLED","global","module","imports","NestScheduleModule","forRoot"],"mappings":"AAAA;;;;CAIC;;;;+BAQYA;;;eAAAA;;;wBANyB;0BACe;oEACjC;oCAC2B;;;;;;;;;;;;AAGxC,IAAA,AAAMA,kBAAN,MAAMA;IACX,OAAOC,WAA0B;QAC/B,IAAIC,oBAAO,CAACC,QAAQ,IAAIC,QAAQC,GAAG,CAACC,iCAAa,CAAC,KAAKC,mCAAe,CAACC,OAAO,EAAE;YAC9E,OAAO;gBACLC,QAAQ;gBACRC,QAAQV;gBACRW,SAAS;oBAACC,wBAAkB,CAACC,OAAO;iBAAG;YACzC;QACF,OAAO;YACL,mGAAmG;YACnG,OAAO;gBAAEH,QAAQV;YAAgB;QACnC;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../backend/src/infrastructure/scheduler/scheduler.module.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { DynamicModule, Module } from '@nestjs/common'\nimport { ScheduleModule as NestScheduleModule } from '@nestjs/schedule'\nimport cluster from 'node:cluster'\nimport { SCHEDULER_ENV, SCHEDULER_STATE } from './scheduler.constants'\n\n@Module({})\nexport class SchedulerModule {\n static register(): DynamicModule {\n if (cluster.isWorker && process.env[SCHEDULER_ENV] === SCHEDULER_STATE.ENABLED) {\n return {\n global: true,\n module: SchedulerModule,\n imports: [NestScheduleModule.forRoot()]\n }\n } else {\n // do not initialize the ScheduleModule dependency; all calls to Interval, Cron ... will be ignored\n return { module: SchedulerModule }\n }\n }\n}\n"],"names":["SchedulerModule","register","cluster","isWorker","process","env","SCHEDULER_ENV","SCHEDULER_STATE","ENABLED","global","module","imports","NestScheduleModule","forRoot"],"mappings":"AAAA;;;;CAIC;;;;+BAQYA;;;eAAAA;;;wBANyB;0BACe;oEACjC;oCAC2B;;;;;;;;;;;;AAGxC,IAAA,AAAMA,kBAAN,MAAMA;IACX,OAAOC,WAA0B;QAC/B,IAAIC,oBAAO,CAACC,QAAQ,IAAIC,QAAQC,GAAG,CAACC,iCAAa,CAAC,KAAKC,mCAAe,CAACC,OAAO,EAAE;YAC9E,OAAO;gBACLC,QAAQ;gBACRC,QAAQV;gBACRW,SAAS;oBAACC,wBAAkB,CAACC,OAAO;iBAAG;YACzC;QACF,OAAO;YACL,mGAAmG;YACnG,OAAO;gBAAEH,QAAQV;YAAgB;QACnC;IACF;AACF"}
@@ -28,9 +28,7 @@ let ClusterAdapter = class ClusterAdapter extends _platformsocketio.IoAdapter {
28
28
  return server;
29
29
  }
30
30
  constructor(...args){
31
- super(...args), this.clusterAdapter = (0, _clusteradapter.createAdapter)({
32
- requestsTimeout: 60000
33
- });
31
+ super(...args), this.clusterAdapter = (0, _clusteradapter.createAdapter)();
34
32
  }
35
33
  };
36
34
  ClusterAdapter = _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../backend/src/infrastructure/websocket/adapters/cluster.adapter.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 { Injectable } from '@nestjs/common'\nimport { IoAdapter } from '@nestjs/platform-socket.io'\nimport { createAdapter } from '@socket.io/cluster-adapter'\nimport { ServerOptions } from 'socket.io'\n\n@Injectable()\nexport class ClusterAdapter extends IoAdapter {\n private readonly clusterAdapter = createAdapter({ requestsTimeout: 60000 })\n\n createIOServer(port: number, options?: ServerOptions): any {\n const server = super.createIOServer(port, options)\n server.adapter(this.clusterAdapter)\n return server\n }\n}\n"],"names":["ClusterAdapter","IoAdapter","createIOServer","port","options","server","adapter","clusterAdapter","createAdapter","requestsTimeout"],"mappings":"AAAA;;;;CAIC;;;;+BAQYA;;;eAAAA;;;wBANc;kCACD;gCACI;;;;;;;AAIvB,IAAA,AAAMA,iBAAN,MAAMA,uBAAuBC,2BAAS;IAG3CC,eAAeC,IAAY,EAAEC,OAAuB,EAAO;QACzD,MAAMC,SAAS,KAAK,CAACH,eAAeC,MAAMC;QAC1CC,OAAOC,OAAO,CAAC,IAAI,CAACC,cAAc;QAClC,OAAOF;IACT;;QAPK,qBACYE,iBAAiBC,IAAAA,6BAAa,EAAC;YAAEC,iBAAiB;QAAM;;AAO3E"}
1
+ {"version":3,"sources":["../../../../../backend/src/infrastructure/websocket/adapters/cluster.adapter.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 { Injectable } from '@nestjs/common'\nimport { IoAdapter } from '@nestjs/platform-socket.io'\nimport { createAdapter } from '@socket.io/cluster-adapter'\nimport { ServerOptions } from 'socket.io'\n\n@Injectable()\nexport class ClusterAdapter extends IoAdapter {\n private readonly clusterAdapter = createAdapter()\n\n createIOServer(port: number, options?: ServerOptions): any {\n const server = super.createIOServer(port, options)\n server.adapter(this.clusterAdapter)\n return server\n }\n}\n"],"names":["ClusterAdapter","IoAdapter","createIOServer","port","options","server","adapter","clusterAdapter","createAdapter"],"mappings":"AAAA;;;;CAIC;;;;+BAQYA;;;eAAAA;;;wBANc;kCACD;gCACI;;;;;;;AAIvB,IAAA,AAAMA,iBAAN,MAAMA,uBAAuBC,2BAAS;IAG3CC,eAAeC,IAAY,EAAEC,OAAuB,EAAO;QACzD,MAAMC,SAAS,KAAK,CAACH,eAAeC,MAAMC;QAC1CC,OAAOC,OAAO,CAAC,IAAI,CAACC,cAAc;QAClC,OAAOF;IACT;;QAPK,qBACYE,iBAAiBC,IAAAA,6BAAa;;AAOjD"}
@@ -1,4 +1,56 @@
1
1
 
2
+ --------------------------------------------------------------------------------
3
+ Package: codemirror
4
+ License: "MIT"
5
+
6
+ MIT License
7
+
8
+ Copyright (C) 2017 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.
27
+
28
+ --------------------------------------------------------------------------------
29
+ Package: dayjs
30
+ License: "MIT"
31
+
32
+ MIT License
33
+
34
+ Copyright (c) 2018-present, iamkun
35
+
36
+ Permission is hereby granted, free of charge, to any person obtaining a copy
37
+ of this software and associated documentation files (the "Software"), to deal
38
+ in the Software without restriction, including without limitation the rights
39
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
40
+ copies of the Software, and to permit persons to whom the Software is
41
+ furnished to do so, subject to the following conditions:
42
+
43
+ The above copyright notice and this permission notice shall be included in all
44
+ copies or substantial portions of the Software.
45
+
46
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
47
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
48
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
49
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
50
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
51
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
52
+ SOFTWARE.
53
+
2
54
  --------------------------------------------------------------------------------
3
55
  Package: @angular/animations
4
56
  License: "MIT"
@@ -249,32 +301,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
249
301
  SOFTWARE.
250
302
 
251
303
 
252
- --------------------------------------------------------------------------------
253
- Package: codemirror
254
- License: "MIT"
255
-
256
- MIT License
257
-
258
- Copyright (C) 2017 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
259
-
260
- Permission is hereby granted, free of charge, to any person obtaining a copy
261
- of this software and associated documentation files (the "Software"), to deal
262
- in the Software without restriction, including without limitation the rights
263
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
264
- copies of the Software, and to permit persons to whom the Software is
265
- furnished to do so, subject to the following conditions:
266
-
267
- The above copyright notice and this permission notice shall be included in
268
- all copies or substantial portions of the Software.
269
-
270
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
271
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
272
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
273
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
274
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
275
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
276
- THE SOFTWARE.
277
-
278
304
  --------------------------------------------------------------------------------
279
305
  Package: @fortawesome/free-regular-svg-icons
280
306
  License: "(CC-BY-4.0 AND MIT)"
@@ -533,6 +559,32 @@ Package: ngx-clipboard
533
559
  License: "MIT"
534
560
 
535
561
 
562
+ --------------------------------------------------------------------------------
563
+ Package: @angular/router
564
+ License: "MIT"
565
+
566
+ The MIT License
567
+
568
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
569
+
570
+ Permission is hereby granted, free of charge, to any person obtaining a copy
571
+ of this software and associated documentation files (the "Software"), to deal
572
+ in the Software without restriction, including without limitation the rights
573
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
574
+ copies of the Software, and to permit persons to whom the Software is
575
+ furnished to do so, subject to the following conditions:
576
+
577
+ The above copyright notice and this permission notice shall be included in
578
+ all copies or substantial portions of the Software.
579
+
580
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
581
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
582
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
583
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
584
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
585
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
586
+ THE SOFTWARE.
587
+
536
588
  --------------------------------------------------------------------------------
537
589
  Package: socket.io-client
538
590
  License: "MIT"
@@ -691,32 +743,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
691
743
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
692
744
  SOFTWARE.
693
745
 
694
- --------------------------------------------------------------------------------
695
- Package: dayjs
696
- License: "MIT"
697
-
698
- MIT License
699
-
700
- Copyright (c) 2018-present, iamkun
701
-
702
- Permission is hereby granted, free of charge, to any person obtaining a copy
703
- of this software and associated documentation files (the "Software"), to deal
704
- in the Software without restriction, including without limitation the rights
705
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
706
- copies of the Software, and to permit persons to whom the Software is
707
- furnished to do so, subject to the following conditions:
708
-
709
- The above copyright notice and this permission notice shall be included in all
710
- copies or substantial portions of the Software.
711
-
712
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
713
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
714
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
715
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
716
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
717
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
718
- SOFTWARE.
719
-
720
746
  --------------------------------------------------------------------------------
721
747
  Package: @angular/core
722
748
  License: "MIT"
@@ -821,32 +847,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
821
847
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
822
848
  SOFTWARE.
823
849
 
824
- --------------------------------------------------------------------------------
825
- Package: @angular/router
826
- License: "MIT"
827
-
828
- The MIT License
829
-
830
- Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
831
-
832
- Permission is hereby granted, free of charge, to any person obtaining a copy
833
- of this software and associated documentation files (the "Software"), to deal
834
- in the Software without restriction, including without limitation the rights
835
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
836
- copies of the Software, and to permit persons to whom the Software is
837
- furnished to do so, subject to the following conditions:
838
-
839
- The above copyright notice and this permission notice shall be included in
840
- all copies or substantial portions of the Software.
841
-
842
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
843
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
844
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
845
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
846
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
847
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
848
- THE SOFTWARE.
849
-
850
850
  --------------------------------------------------------------------------------
851
851
  Package: rxjs
852
852
  License: "Apache-2.0"
@@ -1097,9 +1097,40 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1097
1097
  THE SOFTWARE.
1098
1098
 
1099
1099
  --------------------------------------------------------------------------------
1100
- Package: @fortawesome/fontawesome-svg-core
1100
+ Package: @angular/forms
1101
1101
  License: "MIT"
1102
1102
 
1103
+ The MIT License
1104
+
1105
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
1106
+
1107
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1108
+ of this software and associated documentation files (the "Software"), to deal
1109
+ in the Software without restriction, including without limitation the rights
1110
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1111
+ copies of the Software, and to permit persons to whom the Software is
1112
+ furnished to do so, subject to the following conditions:
1113
+
1114
+ The above copyright notice and this permission notice shall be included in
1115
+ all copies or substantial portions of the Software.
1116
+
1117
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1118
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1119
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1120
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1121
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1122
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1123
+ THE SOFTWARE.
1124
+
1125
+ --------------------------------------------------------------------------------
1126
+ Package: angular-l10n
1127
+ License: "MIT"
1128
+
1129
+
1130
+ --------------------------------------------------------------------------------
1131
+ Package: @fortawesome/free-solid-svg-icons
1132
+ License: "(CC-BY-4.0 AND MIT)"
1133
+
1103
1134
  Fonticons, Inc. (https://fontawesome.com)
1104
1135
 
1105
1136
  --------------------------------------------------------------------------------
@@ -1267,66 +1298,9 @@ Awesome, nor vice versa. **Please do not use brand logos for any purpose except
1267
1298
  to represent the company, product, or service to which they refer.**
1268
1299
 
1269
1300
  --------------------------------------------------------------------------------
1270
- Package: @fortawesome/angular-fontawesome
1271
- License: "MIT"
1272
-
1273
- MIT License
1274
-
1275
- Copyright (c) 2018 Fonticons, Inc. and contributors
1276
-
1277
- Permission is hereby granted, free of charge, to any person obtaining a copy
1278
- of this software and associated documentation files (the "Software"), to deal
1279
- in the Software without restriction, including without limitation the rights
1280
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1281
- copies of the Software, and to permit persons to whom the Software is
1282
- furnished to do so, subject to the following conditions:
1283
-
1284
- The above copyright notice and this permission notice shall be included in
1285
- all copies or substantial portions of the Software.
1286
-
1287
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1288
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1289
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1290
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1291
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1292
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1293
- THE SOFTWARE.
1294
-
1295
- --------------------------------------------------------------------------------
1296
- Package: @angular/forms
1297
- License: "MIT"
1298
-
1299
- The MIT License
1300
-
1301
- Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
1302
-
1303
- Permission is hereby granted, free of charge, to any person obtaining a copy
1304
- of this software and associated documentation files (the "Software"), to deal
1305
- in the Software without restriction, including without limitation the rights
1306
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1307
- copies of the Software, and to permit persons to whom the Software is
1308
- furnished to do so, subject to the following conditions:
1309
-
1310
- The above copyright notice and this permission notice shall be included in
1311
- all copies or substantial portions of the Software.
1312
-
1313
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1314
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1315
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1316
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1317
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1318
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1319
- THE SOFTWARE.
1320
-
1321
- --------------------------------------------------------------------------------
1322
- Package: angular-l10n
1301
+ Package: @fortawesome/fontawesome-svg-core
1323
1302
  License: "MIT"
1324
1303
 
1325
-
1326
- --------------------------------------------------------------------------------
1327
- Package: @fortawesome/free-solid-svg-icons
1328
- License: "(CC-BY-4.0 AND MIT)"
1329
-
1330
1304
  Fonticons, Inc. (https://fontawesome.com)
1331
1305
 
1332
1306
  --------------------------------------------------------------------------------
@@ -1493,6 +1467,32 @@ trademarks does not indicate endorsement of the trademark holder by Font
1493
1467
  Awesome, nor vice versa. **Please do not use brand logos for any purpose except
1494
1468
  to represent the company, product, or service to which they refer.**
1495
1469
 
1470
+ --------------------------------------------------------------------------------
1471
+ Package: @fortawesome/angular-fontawesome
1472
+ License: "MIT"
1473
+
1474
+ MIT License
1475
+
1476
+ Copyright (c) 2018 Fonticons, Inc. and contributors
1477
+
1478
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1479
+ of this software and associated documentation files (the "Software"), to deal
1480
+ in the Software without restriction, including without limitation the rights
1481
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1482
+ copies of the Software, and to permit persons to whom the Software is
1483
+ furnished to do so, subject to the following conditions:
1484
+
1485
+ The above copyright notice and this permission notice shall be included in
1486
+ all copies or substantial portions of the Software.
1487
+
1488
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1489
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1490
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1491
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1492
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1493
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1494
+ THE SOFTWARE.
1495
+
1496
1496
  --------------------------------------------------------------------------------
1497
1497
  Package: zone.js
1498
1498
  License: "MIT"