@raclettejs/core 0.1.0 → 0.1.1

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 (406) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +4 -2
  3. package/package.json +1 -1
  4. package/services/backend/package.json +1 -3
  5. package/services/frontend/src/orchestrator/components/chip/UserChip.vue +1 -1
  6. package/services/frontend/src/orchestrator/components/menu/UserNotifications.vue +4 -2
  7. package/services/frontend/src/orchestrator/setup/i18n.ts +251 -157
  8. package/dist/cli.js.map +0 -7
  9. package/dist/index.js.map +0 -7
  10. package/services/.DS_Store +0 -0
  11. package/services/backend/.DS_Store +0 -0
  12. package/services/backend/.env +0 -5
  13. package/services/backend/.vscode/launch.json +0 -18
  14. package/services/backend/dist/src/app.d.ts +0 -9
  15. package/services/backend/dist/src/app.js +0 -164
  16. package/services/backend/dist/src/core/backgroundTasks/taskManager.d.ts +0 -12
  17. package/services/backend/dist/src/core/backgroundTasks/taskManager.js +0 -135
  18. package/services/backend/dist/src/core/backgroundTasks/taskManagerTypes.d.ts +0 -19
  19. package/services/backend/dist/src/core/backgroundTasks/taskManagerTypes.js +0 -2
  20. package/services/backend/dist/src/core/backgroundTasks/toadSchedulerTypes.d.ts +0 -7
  21. package/services/backend/dist/src/core/backgroundTasks/toadSchedulerTypes.js +0 -1
  22. package/services/backend/dist/src/core/config/configService.d.ts +0 -38
  23. package/services/backend/dist/src/core/config/configService.js +0 -98
  24. package/services/backend/dist/src/core/config/configTypes.d.ts +0 -33
  25. package/services/backend/dist/src/core/config/configTypes.js +0 -5
  26. package/services/backend/dist/src/core/contracting/contractRegistrar.d.ts +0 -13
  27. package/services/backend/dist/src/core/contracting/contractRegistrar.js +0 -83
  28. package/services/backend/dist/src/core/contracting/contractTypes.d.ts +0 -18
  29. package/services/backend/dist/src/core/contracting/contractTypes.js +0 -1
  30. package/services/backend/dist/src/core/crud/crudRegistrar.d.ts +0 -6
  31. package/services/backend/dist/src/core/crud/crudRegistrar.js +0 -16
  32. package/services/backend/dist/src/core/crud/crudTypes.d.ts +0 -8
  33. package/services/backend/dist/src/core/crud/crudTypes.js +0 -1
  34. package/services/backend/dist/src/core/eventBus/eventBusEventMap.d.ts +0 -65
  35. package/services/backend/dist/src/core/eventBus/eventBusEventMap.js +0 -64
  36. package/services/backend/dist/src/core/eventBus/index.d.ts +0 -3
  37. package/services/backend/dist/src/core/eventBus/index.js +0 -7
  38. package/services/backend/dist/src/core/events/eventEmitter.d.ts +0 -13
  39. package/services/backend/dist/src/core/events/eventEmitter.js +0 -120
  40. package/services/backend/dist/src/core/http/headers.d.ts +0 -3
  41. package/services/backend/dist/src/core/http/headers.js +0 -22
  42. package/services/backend/dist/src/core/http/httpService.d.ts +0 -4
  43. package/services/backend/dist/src/core/http/httpService.js +0 -28
  44. package/services/backend/dist/src/core/http/httpTypes.d.ts +0 -15
  45. package/services/backend/dist/src/core/http/httpTypes.js +0 -1
  46. package/services/backend/dist/src/core/http/request-params.plugin.d.ts +0 -2
  47. package/services/backend/dist/src/core/http/request-params.plugin.js +0 -34
  48. package/services/backend/dist/src/core/payload/payloadRegistrar.d.ts +0 -45
  49. package/services/backend/dist/src/core/payload/payloadRegistrar.js +0 -121
  50. package/services/backend/dist/src/core/payload/payloadTypes.d.ts +0 -42
  51. package/services/backend/dist/src/core/payload/payloadTypes.js +0 -1
  52. package/services/backend/dist/src/core/pluginSystem/configGenerator/generatorTypes.d.ts +0 -49
  53. package/services/backend/dist/src/core/pluginSystem/configGenerator/generatorTypes.js +0 -1
  54. package/services/backend/dist/src/core/pluginSystem/configGenerator/index.d.ts +0 -14
  55. package/services/backend/dist/src/core/pluginSystem/configGenerator/index.js +0 -342
  56. package/services/backend/dist/src/core/pluginSystem/pluginFastifyInstance.d.ts +0 -3
  57. package/services/backend/dist/src/core/pluginSystem/pluginFastifyInstance.js +0 -161
  58. package/services/backend/dist/src/core/pluginSystem/pluginLoader.d.ts +0 -5
  59. package/services/backend/dist/src/core/pluginSystem/pluginLoader.js +0 -317
  60. package/services/backend/dist/src/core/pluginSystem/pluginTypes.d.ts +0 -51
  61. package/services/backend/dist/src/core/pluginSystem/pluginTypes.js +0 -6
  62. package/services/backend/dist/src/core/sockets/createSystemEventHandlers.d.ts +0 -20
  63. package/services/backend/dist/src/core/sockets/createSystemEventHandlers.js +0 -74
  64. package/services/backend/dist/src/core/sockets/index.d.ts +0 -2
  65. package/services/backend/dist/src/core/sockets/index.js +0 -65
  66. package/services/backend/dist/src/core/sockets/socketManager.d.ts +0 -3
  67. package/services/backend/dist/src/core/sockets/socketManager.js +0 -125
  68. package/services/backend/dist/src/core/sockets/socketTypes.d.ts +0 -32
  69. package/services/backend/dist/src/core/sockets/socketTypes.js +0 -1
  70. package/services/backend/dist/src/core/validation/schemaGenerator.d.ts +0 -6
  71. package/services/backend/dist/src/core/validation/schemaGenerator.js +0 -242
  72. package/services/backend/dist/src/core/validation/schemaTypes.d.ts +0 -15
  73. package/services/backend/dist/src/core/validation/schemaTypes.js +0 -1
  74. package/services/backend/dist/src/core/validation/sharedSchemas.d.ts +0 -8
  75. package/services/backend/dist/src/core/validation/sharedSchemas.js +0 -7
  76. package/services/backend/dist/src/corePlugins/raclette__core/client/generated-config.d.ts +0 -304
  77. package/services/backend/dist/src/corePlugins/raclette__core/client/generated-config.js +0 -359
  78. package/services/backend/dist/src/corePlugins/raclette__core/client/index.d.ts +0 -2
  79. package/services/backend/dist/src/corePlugins/raclette__core/client/index.js +0 -2
  80. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.model.d.ts +0 -3
  81. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.model.js +0 -33
  82. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.schema.d.ts +0 -36
  83. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.schema.js +0 -29
  84. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.service.d.ts +0 -74
  85. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.service.js +0 -242
  86. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/events/index.d.ts +0 -3
  87. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/events/index.js +0 -31
  88. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/helpers/crud.d.ts +0 -2
  89. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/helpers/crud.js +0 -9
  90. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/helpers/payload.d.ts +0 -4
  91. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/helpers/payload.js +0 -13
  92. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/index.d.ts +0 -16
  93. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/index.js +0 -48
  94. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/index.d.ts +0 -3
  95. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/index.js +0 -15
  96. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.get.d.ts +0 -24
  97. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.get.js +0 -33
  98. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.getAll.d.ts +0 -15
  99. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.getAll.js +0 -25
  100. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.hardDelete.d.ts +0 -26
  101. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.hardDelete.js +0 -32
  102. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.patch.d.ts +0 -39
  103. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.patch.js +0 -33
  104. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.post.d.ts +0 -30
  105. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.post.js +0 -27
  106. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.remove.d.ts +0 -25
  107. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.remove.js +0 -31
  108. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.model.d.ts +0 -3
  109. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.model.js +0 -92
  110. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.schema.d.ts +0 -128
  111. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.schema.js +0 -97
  112. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.service.d.ts +0 -63
  113. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.service.js +0 -212
  114. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/events/index.d.ts +0 -3
  115. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/events/index.js +0 -22
  116. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/helpers/crud.d.ts +0 -2
  117. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/helpers/crud.js +0 -10
  118. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/helpers/payload.d.ts +0 -4
  119. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/helpers/payload.js +0 -11
  120. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/index.d.ts +0 -46
  121. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/index.js +0 -51
  122. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/index.d.ts +0 -3
  123. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/index.js +0 -15
  124. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.get.d.ts +0 -24
  125. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.get.js +0 -33
  126. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.getAll.d.ts +0 -15
  127. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.getAll.js +0 -25
  128. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.hardDelete.d.ts +0 -25
  129. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.hardDelete.js +0 -31
  130. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.patch.d.ts +0 -49
  131. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.patch.js +0 -33
  132. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.post.d.ts +0 -40
  133. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.post.js +0 -27
  134. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.remove.d.ts +0 -25
  135. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.remove.js +0 -31
  136. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/events/index.d.ts +0 -3
  137. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/events/index.js +0 -22
  138. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/helpers/crud.d.ts +0 -2
  139. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/helpers/crud.js +0 -9
  140. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/helpers/payload.d.ts +0 -4
  141. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/helpers/payload.js +0 -11
  142. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/index.d.ts +0 -16
  143. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/index.js +0 -48
  144. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.model.d.ts +0 -3
  145. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.model.js +0 -61
  146. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.schema.d.ts +0 -86
  147. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.schema.js +0 -74
  148. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.service.d.ts +0 -79
  149. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.service.js +0 -272
  150. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/index.d.ts +0 -3
  151. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/index.js +0 -15
  152. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.get.d.ts +0 -24
  153. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.get.js +0 -33
  154. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.getAll.d.ts +0 -15
  155. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.getAll.js +0 -25
  156. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.hardDelete.d.ts +0 -25
  157. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.hardDelete.js +0 -31
  158. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.patch.d.ts +0 -39
  159. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.patch.js +0 -33
  160. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.post.d.ts +0 -30
  161. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.post.js +0 -27
  162. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.remove.d.ts +0 -25
  163. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.remove.js +0 -31
  164. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/events/index.d.ts +0 -3
  165. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/events/index.js +0 -31
  166. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/helpers/crud.d.ts +0 -2
  167. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/helpers/crud.js +0 -9
  168. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/helpers/payload.d.ts +0 -4
  169. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/helpers/payload.js +0 -13
  170. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/index.d.ts +0 -17
  171. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/index.js +0 -49
  172. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.model.d.ts +0 -3
  173. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.model.js +0 -30
  174. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.schema.d.ts +0 -61
  175. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.schema.js +0 -65
  176. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.service.d.ts +0 -68
  177. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.service.js +0 -230
  178. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/index.d.ts +0 -3
  179. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/index.js +0 -15
  180. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.get.d.ts +0 -24
  181. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.get.js +0 -33
  182. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.getAll.d.ts +0 -15
  183. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.getAll.js +0 -28
  184. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.hardDelete.d.ts +0 -26
  185. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.hardDelete.js +0 -32
  186. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.patch.d.ts +0 -38
  187. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.patch.js +0 -33
  188. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.post.d.ts +0 -25
  189. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.post.js +0 -27
  190. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.remove.d.ts +0 -25
  191. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.remove.js +0 -31
  192. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/events/index.d.ts +0 -3
  193. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/events/index.js +0 -39
  194. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/helpers/crud.d.ts +0 -2
  195. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/helpers/crud.js +0 -9
  196. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/helpers/payload.d.ts +0 -4
  197. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/helpers/payload.js +0 -13
  198. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/index.d.ts +0 -17
  199. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/index.js +0 -49
  200. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/index.d.ts +0 -3
  201. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/index.js +0 -15
  202. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.get.d.ts +0 -24
  203. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.get.js +0 -31
  204. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.getAll.d.ts +0 -15
  205. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.getAll.js +0 -28
  206. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.hardDelete.d.ts +0 -26
  207. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.hardDelete.js +0 -32
  208. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.patch.d.ts +0 -39
  209. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.patch.js +0 -34
  210. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.post.d.ts +0 -40
  211. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.post.js +0 -35
  212. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.remove.d.ts +0 -26
  213. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.remove.js +0 -32
  214. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.model.d.ts +0 -3
  215. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.model.js +0 -74
  216. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.schema.d.ts +0 -68
  217. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.schema.js +0 -71
  218. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.service.d.ts +0 -65
  219. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.service.js +0 -232
  220. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/events/index.d.ts +0 -3
  221. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/events/index.js +0 -31
  222. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/helpers/crud.d.ts +0 -2
  223. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/helpers/crud.js +0 -9
  224. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/helpers/payload.d.ts +0 -4
  225. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/helpers/payload.js +0 -11
  226. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/index.d.ts +0 -17
  227. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/index.js +0 -51
  228. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/index.d.ts +0 -3
  229. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/index.js +0 -15
  230. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.get.d.ts +0 -33
  231. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.get.js +0 -33
  232. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.getAll.d.ts +0 -25
  233. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.getAll.js +0 -35
  234. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.patch.d.ts +0 -43
  235. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.patch.js +0 -37
  236. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.patchLastProject.d.ts +0 -23
  237. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.patchLastProject.js +0 -29
  238. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.post.d.ts +0 -34
  239. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.post.js +0 -28
  240. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.remove.d.ts +0 -26
  241. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.remove.js +0 -35
  242. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.model.d.ts +0 -3
  243. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.model.js +0 -145
  244. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.schema.d.ts +0 -120
  245. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.schema.js +0 -109
  246. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.service.d.ts +0 -69
  247. package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.service.js +0 -225
  248. package/services/backend/dist/src/corePlugins/raclette__core/server/index.d.ts +0 -3
  249. package/services/backend/dist/src/corePlugins/raclette__core/server/index.js +0 -32
  250. package/services/backend/dist/src/domains/index.d.ts +0 -3
  251. package/services/backend/dist/src/domains/index.js +0 -8
  252. package/services/backend/dist/src/domains/system/index.d.ts +0 -3
  253. package/services/backend/dist/src/domains/system/index.js +0 -5
  254. package/services/backend/dist/src/domains/system/routes/index.d.ts +0 -3
  255. package/services/backend/dist/src/domains/system/routes/index.js +0 -13
  256. package/services/backend/dist/src/domains/system/routes/route.admin.redis.d.ts +0 -47
  257. package/services/backend/dist/src/domains/system/routes/route.admin.redis.js +0 -81
  258. package/services/backend/dist/src/domains/system/routes/route.deploy.d.ts +0 -14
  259. package/services/backend/dist/src/domains/system/routes/route.deploy.js +0 -20
  260. package/services/backend/dist/src/domains/system/routes/route.user.checkToken.d.ts +0 -12
  261. package/services/backend/dist/src/domains/system/routes/route.user.checkToken.js +0 -40
  262. package/services/backend/dist/src/domains/system/routes/route.user.login.d.ts +0 -44
  263. package/services/backend/dist/src/domains/system/routes/route.user.login.js +0 -163
  264. package/services/backend/dist/src/helpers/index.d.ts +0 -11
  265. package/services/backend/dist/src/helpers/index.js +0 -13
  266. package/services/backend/dist/src/index.d.ts +0 -3
  267. package/services/backend/dist/src/index.js +0 -3
  268. package/services/backend/dist/src/modules/authentication/index.d.ts +0 -4
  269. package/services/backend/dist/src/modules/authentication/index.js +0 -80
  270. package/services/backend/dist/src/modules/cache/cacheManager.d.ts +0 -6
  271. package/services/backend/dist/src/modules/cache/cacheManager.js +0 -131
  272. package/services/backend/dist/src/modules/cache/cacheTypes.d.ts +0 -102
  273. package/services/backend/dist/src/modules/cache/cacheTypes.js +0 -1
  274. package/services/backend/dist/src/modules/cache/providers/redis/redisConfig.d.ts +0 -11
  275. package/services/backend/dist/src/modules/cache/providers/redis/redisConfig.js +0 -17
  276. package/services/backend/dist/src/modules/cache/providers/redis/redisConnection.d.ts +0 -4
  277. package/services/backend/dist/src/modules/cache/providers/redis/redisConnection.js +0 -65
  278. package/services/backend/dist/src/modules/cache/providers/redis/redisTypes.d.ts +0 -18
  279. package/services/backend/dist/src/modules/cache/providers/redis/redisTypes.js +0 -1
  280. package/services/backend/dist/src/modules/database/providers/mongodb/mongoConnection.d.ts +0 -4
  281. package/services/backend/dist/src/modules/database/providers/mongodb/mongoConnection.js +0 -21
  282. package/services/backend/dist/src/modules/database/providers/mongodb/service.d.ts +0 -7
  283. package/services/backend/dist/src/modules/database/providers/mongodb/service.js +0 -1
  284. package/services/backend/dist/src/server.d.ts +0 -1
  285. package/services/backend/dist/src/server.js +0 -98
  286. package/services/backend/dist/src/shared/helper/mongoHelper.d.ts +0 -3
  287. package/services/backend/dist/src/shared/helper/mongoHelper.js +0 -59
  288. package/services/backend/dist/src/shared/helper/pluginHelper.d.ts +0 -19
  289. package/services/backend/dist/src/shared/helper/pluginHelper.js +0 -33
  290. package/services/backend/dist/src/shared/schemas/core/Account.schema.d.ts +0 -63
  291. package/services/backend/dist/src/shared/schemas/core/Account.schema.js +0 -74
  292. package/services/backend/dist/src/shared/schemas/core/Composition.schema.d.ts +0 -103
  293. package/services/backend/dist/src/shared/schemas/core/Composition.schema.js +0 -132
  294. package/services/backend/dist/src/shared/schemas/core/CompositionCreate.schema.d.ts +0 -82
  295. package/services/backend/dist/src/shared/schemas/core/CompositionCreate.schema.js +0 -105
  296. package/services/backend/dist/src/shared/schemas/core/CompositionUpdate.schema.d.ts +0 -78
  297. package/services/backend/dist/src/shared/schemas/core/CompositionUpdate.schema.js +0 -95
  298. package/services/backend/dist/src/shared/schemas/core/InteractionLink.schema.d.ts +0 -84
  299. package/services/backend/dist/src/shared/schemas/core/InteractionLink.schema.js +0 -97
  300. package/services/backend/dist/src/shared/schemas/core/InteractionLinkCreate.schema.d.ts +0 -63
  301. package/services/backend/dist/src/shared/schemas/core/InteractionLinkCreate.schema.js +0 -70
  302. package/services/backend/dist/src/shared/schemas/core/InteractionLinkUpdate.schema.d.ts +0 -63
  303. package/services/backend/dist/src/shared/schemas/core/InteractionLinkUpdate.schema.js +0 -70
  304. package/services/backend/dist/src/shared/schemas/core/Project.schema.d.ts +0 -53
  305. package/services/backend/dist/src/shared/schemas/core/Project.schema.js +0 -58
  306. package/services/backend/dist/src/shared/schemas/core/ProjectCreate.schema.d.ts +0 -41
  307. package/services/backend/dist/src/shared/schemas/core/ProjectCreate.schema.js +0 -41
  308. package/services/backend/dist/src/shared/schemas/core/ProjectUpdate.schema.d.ts +0 -38
  309. package/services/backend/dist/src/shared/schemas/core/ProjectUpdate.schema.js +0 -38
  310. package/services/backend/dist/src/shared/schemas/core/Tag.schema.d.ts +0 -68
  311. package/services/backend/dist/src/shared/schemas/core/Tag.schema.js +0 -81
  312. package/services/backend/dist/src/shared/schemas/core/TagCreate.schema.d.ts +0 -52
  313. package/services/backend/dist/src/shared/schemas/core/TagCreate.schema.js +0 -60
  314. package/services/backend/dist/src/shared/schemas/core/TagUpdate.schema.d.ts +0 -47
  315. package/services/backend/dist/src/shared/schemas/core/TagUpdate.schema.js +0 -55
  316. package/services/backend/dist/src/shared/schemas/core/Trigger.schema.d.ts +0 -25
  317. package/services/backend/dist/src/shared/schemas/core/Trigger.schema.js +0 -27
  318. package/services/backend/dist/src/shared/schemas/core/User.schema.d.ts +0 -161
  319. package/services/backend/dist/src/shared/schemas/core/User.schema.js +0 -185
  320. package/services/backend/dist/src/shared/schemas/core/UserCreate.schema.d.ts +0 -59
  321. package/services/backend/dist/src/shared/schemas/core/UserCreate.schema.js +0 -67
  322. package/services/backend/dist/src/shared/schemas/core/UserUpdate.schema.d.ts +0 -52
  323. package/services/backend/dist/src/shared/schemas/core/UserUpdate.schema.js +0 -52
  324. package/services/backend/dist/src/shared/schemas/core/Widget.schema.d.ts +0 -25
  325. package/services/backend/dist/src/shared/schemas/core/Widget.schema.js +0 -29
  326. package/services/backend/dist/src/shared/schemas/core/WidgetLayout.schema.d.ts +0 -34
  327. package/services/backend/dist/src/shared/schemas/core/WidgetLayout.schema.js +0 -41
  328. package/services/backend/dist/src/shared/types/core/Account.types.d.ts +0 -19
  329. package/services/backend/dist/src/shared/types/core/Account.types.js +0 -8
  330. package/services/backend/dist/src/shared/types/core/Composition.types.d.ts +0 -31
  331. package/services/backend/dist/src/shared/types/core/Composition.types.js +0 -8
  332. package/services/backend/dist/src/shared/types/core/CompositionCreate.types.d.ts +0 -25
  333. package/services/backend/dist/src/shared/types/core/CompositionCreate.types.js +0 -8
  334. package/services/backend/dist/src/shared/types/core/CompositionUpdate.types.d.ts +0 -25
  335. package/services/backend/dist/src/shared/types/core/CompositionUpdate.types.js +0 -8
  336. package/services/backend/dist/src/shared/types/core/InteractionLink.types.d.ts +0 -25
  337. package/services/backend/dist/src/shared/types/core/InteractionLink.types.js +0 -8
  338. package/services/backend/dist/src/shared/types/core/InteractionLinkCreate.types.d.ts +0 -19
  339. package/services/backend/dist/src/shared/types/core/InteractionLinkCreate.types.js +0 -8
  340. package/services/backend/dist/src/shared/types/core/InteractionLinkUpdate.types.d.ts +0 -19
  341. package/services/backend/dist/src/shared/types/core/InteractionLinkUpdate.types.js +0 -8
  342. package/services/backend/dist/src/shared/types/core/Project.types.d.ts +0 -18
  343. package/services/backend/dist/src/shared/types/core/Project.types.js +0 -8
  344. package/services/backend/dist/src/shared/types/core/ProjectCreate.types.d.ts +0 -15
  345. package/services/backend/dist/src/shared/types/core/ProjectCreate.types.js +0 -8
  346. package/services/backend/dist/src/shared/types/core/ProjectUpdate.types.d.ts +0 -15
  347. package/services/backend/dist/src/shared/types/core/ProjectUpdate.types.js +0 -8
  348. package/services/backend/dist/src/shared/types/core/Tag.types.d.ts +0 -21
  349. package/services/backend/dist/src/shared/types/core/Tag.types.js +0 -8
  350. package/services/backend/dist/src/shared/types/core/TagCreate.types.d.ts +0 -17
  351. package/services/backend/dist/src/shared/types/core/TagCreate.types.js +0 -8
  352. package/services/backend/dist/src/shared/types/core/TagUpdate.types.d.ts +0 -17
  353. package/services/backend/dist/src/shared/types/core/TagUpdate.types.js +0 -8
  354. package/services/backend/dist/src/shared/types/core/Trigger.types.d.ts +0 -11
  355. package/services/backend/dist/src/shared/types/core/Trigger.types.js +0 -8
  356. package/services/backend/dist/src/shared/types/core/User.types.d.ts +0 -50
  357. package/services/backend/dist/src/shared/types/core/User.types.js +0 -8
  358. package/services/backend/dist/src/shared/types/core/UserCreate.types.d.ts +0 -22
  359. package/services/backend/dist/src/shared/types/core/UserCreate.types.js +0 -8
  360. package/services/backend/dist/src/shared/types/core/UserUpdate.types.d.ts +0 -21
  361. package/services/backend/dist/src/shared/types/core/UserUpdate.types.js +0 -8
  362. package/services/backend/dist/src/shared/types/core/Widget.types.d.ts +0 -14
  363. package/services/backend/dist/src/shared/types/core/Widget.types.js +0 -8
  364. package/services/backend/dist/src/shared/types/core/WidgetLayout.types.d.ts +0 -17
  365. package/services/backend/dist/src/shared/types/core/WidgetLayout.types.js +0 -8
  366. package/services/backend/dist/src/shared/types/core/index.d.ts +0 -26
  367. package/services/backend/dist/src/shared/types/core/index.js +0 -8
  368. package/services/backend/dist/src/shared/types/dataTypes/index.d.ts +0 -5
  369. package/services/backend/dist/src/shared/types/dataTypes/index.js +0 -6
  370. package/services/backend/dist/src/shared/types/dataTypes/tags.d.ts +0 -12
  371. package/services/backend/dist/src/shared/types/dataTypes/tags.js +0 -17
  372. package/services/backend/dist/src/shared/types/global/api.d.ts +0 -10
  373. package/services/backend/dist/src/shared/types/global/api.js +0 -1
  374. package/services/backend/dist/src/shared/types/global/search.d.ts +0 -7
  375. package/services/backend/dist/src/shared/types/global/search.js +0 -13
  376. package/services/backend/dist/src/shared/types/index.d.ts +0 -9
  377. package/services/backend/dist/src/shared/types/index.js +0 -8
  378. package/services/backend/dist/src/shared/types/plugins/index.d.ts +0 -8
  379. package/services/backend/dist/src/shared/types/plugins/index.js +0 -8
  380. package/services/backend/dist/src/types/index.d.ts +0 -12
  381. package/services/backend/dist/src/types/index.js +0 -12
  382. package/services/backend/dist/src/utils/errors.d.ts +0 -16
  383. package/services/backend/dist/src/utils/errors.js +0 -28
  384. package/services/backend/dist/src/utils/index.d.ts +0 -2
  385. package/services/backend/dist/src/utils/index.js +0 -2
  386. package/services/backend/dist/src/utils/request.utils.d.ts +0 -8
  387. package/services/backend/dist/src/utils/request.utils.js +0 -12
  388. package/services/backend/dist/types/index.d.ts +0 -3
  389. package/services/backend/dist/types/index.js +0 -2
  390. package/services/backend/src/.DS_Store +0 -0
  391. package/services/backend/src/core/.DS_Store +0 -0
  392. package/services/backend/src/core/pluginSystem/.DS_Store +0 -0
  393. package/services/backend/src/domains/.DS_Store +0 -0
  394. package/services/backend/src/domains/system/.DS_Store +0 -0
  395. package/services/backend/src/ssh-keys/krake +0 -8
  396. package/services/backend/src/ssh-keys/krake.pub +0 -1
  397. package/services/frontend/.DS_Store +0 -0
  398. package/services/frontend/src/.DS_Store +0 -0
  399. package/services/frontend/src/core/.DS_Store +0 -0
  400. package/services/frontend/src/core/lib/.DS_Store +0 -0
  401. package/services/frontend/src/orchestrator/.DS_Store +0 -0
  402. package/services/frontend/src/orchestrator/assets/fonts/.DS_Store +0 -0
  403. package/services/frontend/src/orchestrator/assets/styles/.DS_Store +0 -0
  404. package/services/frontend/src/orchestrator/components/.DS_Store +0 -0
  405. package/services/frontend/src/orchestrator/components/utils/.DS_Store +0 -0
  406. package/services/frontend/src/orchestrator/composables/.DS_Store +0 -0
@@ -1,40 +0,0 @@
1
- import { authenticate } from "../../../modules/authentication/index.js";
2
- import { callDataTypeOperation } from "../../../core/contracting/contractRegistrar.js";
3
- export default (fastify) => {
4
- const checkDatabase = async () => {
5
- const userCount = await callDataTypeOperation("raclette__core", "user", "readCount");
6
- return userCount > 0;
7
- };
8
- const handler = async (req, reply) => {
9
- if (!(await checkDatabase())) {
10
- // user database is empty
11
- // this is a critical information for the frontend
12
- const replyObj = {
13
- statusCode: 500,
14
- code: "RCLT_DB_NO_USERS",
15
- error: "NoUsersInDatabase",
16
- message: "No Users in Database",
17
- };
18
- return reply.code(replyObj.statusCode).send(replyObj);
19
- }
20
- try {
21
- await authenticate(req, reply, fastify);
22
- }
23
- catch (error) {
24
- console.error(error);
25
- }
26
- return reply.send(req.user);
27
- };
28
- return {
29
- handler: handler,
30
- skipHeaderValidation: true,
31
- schema: {
32
- summary: "Get a single user.",
33
- description: `Retrieve a single user, e.g. to edit the object. Only
34
- administrators, project maintainers and the user himself/herself can access
35
- this object directly.`,
36
- tags: ["core/user"],
37
- params: {},
38
- },
39
- };
40
- };
@@ -1,44 +0,0 @@
1
- import type { Static } from "@sinclair/typebox";
2
- import type { FastifyRequest, FastifyReply, FastifyInstance } from "fastify";
3
- declare const LoginBodySchema: import("@sinclair/typebox").TObject<{
4
- email: import("@sinclair/typebox").TString;
5
- password: import("@sinclair/typebox").TString;
6
- deviceId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
- }>;
8
- type LoginBody = Static<typeof LoginBodySchema>;
9
- declare const _default: (fastify: FastifyInstance) => {
10
- handler: (request: FastifyRequest<{
11
- Body: LoginBody;
12
- }>, reply: FastifyReply) => Promise<{
13
- token: string;
14
- decoded: import("@fastify/jwt").DecodePayloadType;
15
- user: import("../../../corePlugins/raclette__core/server/datatypes/user/user.schema.js").PublicUser;
16
- requestId: string;
17
- }>;
18
- preValidation: (request: FastifyRequest<{
19
- Body: LoginBody;
20
- }>, _reply: FastifyReply, done: (error?: Error) => void) => void;
21
- schema: {
22
- summary: string;
23
- description: string;
24
- tags: string[];
25
- body: import("@sinclair/typebox").TObject<{
26
- email: import("@sinclair/typebox").TString;
27
- password: import("@sinclair/typebox").TString;
28
- deviceId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
29
- }>;
30
- response: {
31
- 200: import("@sinclair/typebox").TObject<{
32
- token: import("@sinclair/typebox").TString;
33
- decoded: import("@sinclair/typebox").TAny;
34
- user: import("@sinclair/typebox").TAny;
35
- requestId: import("@sinclair/typebox").TString;
36
- }>;
37
- 429: import("@sinclair/typebox").TObject<{
38
- error: import("@sinclair/typebox").TString;
39
- lockTimeRemaining: import("@sinclair/typebox").TNumber;
40
- }>;
41
- };
42
- };
43
- };
44
- export default _default;
@@ -1,163 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- import { toPublicUser } from "../../../corePlugins/raclette__core/server/datatypes/user/user.schema.js";
3
- import { randomIdGenerator } from "../../../helpers/index.js";
4
- import { ForbiddenError, NotFoundError, UnauthorizedError, UserError, } from "../../../utils/errors.js";
5
- import { REDIS_CONFIG } from "../../../modules/cache/providers/redis/redisConfig.js";
6
- import { callDataTypeOperation } from "../../../core/contracting/contractRegistrar.js";
7
- const { LOGIN_ATTEMPTS, KEY_PREFIXES } = REDIS_CONFIG;
8
- const LoginBodySchema = Type.Object({
9
- email: Type.String(),
10
- password: Type.String(),
11
- deviceId: Type.Optional(Type.String()),
12
- });
13
- const ResponseSchema = Type.Object({
14
- token: Type.String(),
15
- decoded: Type.Any(),
16
- user: Type.Any(),
17
- requestId: Type.String(),
18
- });
19
- const randomId = randomIdGenerator(16);
20
- export default (fastify) => {
21
- const trackLoginAttempt = async (key) => {
22
- const attemptsKey = `${KEY_PREFIXES.LOGIN_ATTEMPTS}${key}`;
23
- const multi = fastify.redis.multi();
24
- multi.incr(attemptsKey);
25
- multi.expire(attemptsKey, LOGIN_ATTEMPTS.ATTEMPT_WINDOW);
26
- const results = await multi.exec();
27
- const attempts = results?.[0]?.[1];
28
- if (attempts >= LOGIN_ATTEMPTS.MAX_ATTEMPTS) {
29
- const lockKey = `${KEY_PREFIXES.LOGIN_LOCK}${key}`;
30
- await fastify.redis.setex(lockKey, LOGIN_ATTEMPTS.LOCKOUT_DURATION, "1");
31
- }
32
- };
33
- const canAttemptLogin = async (key) => {
34
- const lockKey = `${KEY_PREFIXES.LOGIN_LOCK}${key}`;
35
- const attemptsKey = `${KEY_PREFIXES.LOGIN_ATTEMPTS}${key}`;
36
- const [isLocked, attempts] = await Promise.all([
37
- fastify.redis.exists(lockKey),
38
- fastify.redis.get(attemptsKey),
39
- ]);
40
- if (isLocked) {
41
- fastify.log.info(`Login blocked for ${key}: Account is locked`);
42
- return false;
43
- }
44
- const attemptCount = attempts ? parseInt(attempts) : 0;
45
- const canAttempt = attemptCount < LOGIN_ATTEMPTS.MAX_ATTEMPTS;
46
- if (!canAttempt) {
47
- fastify.log.info(`Login blocked for ${key}: Too many attempts (${attemptCount})`);
48
- }
49
- return canAttempt;
50
- };
51
- const resetLoginAttempts = async (key) => {
52
- const lockKey = `${KEY_PREFIXES.LOGIN_LOCK}${key}`;
53
- const attemptsKey = `${KEY_PREFIXES.LOGIN_ATTEMPTS}${key}`;
54
- await Promise.all([
55
- fastify.redis.del(attemptsKey),
56
- fastify.redis.del(lockKey),
57
- ]);
58
- };
59
- const readUser = async (email, password) => {
60
- const user = await callDataTypeOperation("raclette__core", "user", "readByMail", email);
61
- if (!user) {
62
- throw new NotFoundError("User not found");
63
- }
64
- if (user.blocked) {
65
- throw new ForbiddenError("User is blocked");
66
- }
67
- if (!user.email_verified) {
68
- throw new UnauthorizedError("Email not verified");
69
- }
70
- if (!user.active) {
71
- throw new ForbiddenError("User account is inactive");
72
- }
73
- const isCorrectPassword = await user.checkPassword(password);
74
- if (!isCorrectPassword) {
75
- throw new UnauthorizedError("Invalid credentials");
76
- }
77
- return user;
78
- };
79
- const checkDatabase = async () => {
80
- const userCount = await callDataTypeOperation("raclette__core", "user", "readCount");
81
- return userCount > 0;
82
- };
83
- const handler = async (request, reply) => {
84
- const { email, password, deviceId } = request.body;
85
- const clientKey = deviceId || request.ip || email.toLowerCase();
86
- if (!(await checkDatabase())) {
87
- // user database is empty
88
- // this is a critical information for the frontend
89
- const replyObj = {
90
- statusCode: 500,
91
- code: "RCLT_DB_NO_USERS",
92
- error: "NoUsersInDatabase",
93
- message: "No Users in Database",
94
- };
95
- return reply.code(replyObj.statusCode).send(replyObj);
96
- }
97
- try {
98
- if (!(await canAttemptLogin(clientKey))) {
99
- const remainingLockTime = await fastify.redis.ttl(`${KEY_PREFIXES.LOGIN_LOCK}${clientKey}`);
100
- return reply.code(429).send({
101
- error: "Too many login attempts. Please try again later.",
102
- lockTimeRemaining: remainingLockTime,
103
- });
104
- }
105
- console.warn("TRACK LOGIN ATTEMPT");
106
- await trackLoginAttempt(clientKey);
107
- const user = await readUser(email, password);
108
- // Reset login attempts on successful login
109
- await resetLoginAttempts(clientKey);
110
- // Create token with additional security measures
111
- const tokenPayload = {
112
- _id: user._id.split("|").pop(),
113
- tokenId: randomId,
114
- deviceId: deviceId || request.ip,
115
- iat: Math.floor(Date.now() / 1000),
116
- };
117
- const token = fastify.jwt.sign(tokenPayload, {
118
- expiresIn: "24h",
119
- });
120
- const decoded = fastify.jwt.decode(token);
121
- fastify.log.info(`Successful login for user ${user._id}`);
122
- return {
123
- token,
124
- decoded,
125
- user: toPublicUser(user),
126
- requestId: request.id,
127
- };
128
- }
129
- catch (error) {
130
- fastify.log.error(`Login failed: ${error.message}`);
131
- if (error instanceof UserError) {
132
- return reply.code(error.statusCode).send({ error: error.message });
133
- }
134
- return reply.code(500).send({ error: "Authentication failed" });
135
- }
136
- };
137
- return {
138
- handler,
139
- preValidation: (request, _reply, done) => {
140
- if (request.body?.email) {
141
- request.body.email = request.body.email.toLowerCase().trim();
142
- }
143
- done();
144
- },
145
- schema: {
146
- summary: "Authenticate user and receive access token",
147
- description: `Secure login endpoint with rate limiting and brute force protection.
148
- Implements Redis-based attempt tracking and temporary lockouts.
149
- Max attempts: ${LOGIN_ATTEMPTS.MAX_ATTEMPTS}
150
- Lockout duration: ${LOGIN_ATTEMPTS.LOCKOUT_DURATION} seconds
151
- Attempt window: ${LOGIN_ATTEMPTS.ATTEMPT_WINDOW} seconds`,
152
- tags: ["core/user"],
153
- body: LoginBodySchema,
154
- response: {
155
- 200: ResponseSchema,
156
- 429: Type.Object({
157
- error: Type.String(),
158
- lockTimeRemaining: Type.Number(),
159
- }),
160
- },
161
- },
162
- };
163
- };
@@ -1,11 +0,0 @@
1
- /**
2
- * Random ID generator
3
- *
4
- * @param length - Required length for the output
5
- * @returns Function that generates random IDs
6
- * @example
7
- * const generateId = randomIdGenerator(12);
8
- * const id = generateId(); // => 'gdh6326GDJh0'
9
- */
10
- declare const randomIdGenerator: (length?: number) => (() => string);
11
- export { randomIdGenerator };
@@ -1,13 +0,0 @@
1
- import { customAlphabet } from "nanoid";
2
- const customCyperAlphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
3
- /**
4
- * Random ID generator
5
- *
6
- * @param length - Required length for the output
7
- * @returns Function that generates random IDs
8
- * @example
9
- * const generateId = randomIdGenerator(12);
10
- * const id = generateId(); // => 'gdh6326GDJh0'
11
- */
12
- const randomIdGenerator = (length = 16) => customAlphabet(customCyperAlphabet, length);
13
- export { randomIdGenerator };
@@ -1,3 +0,0 @@
1
- export * from "./types/index.js";
2
- export * from "./utils/index.js";
3
- export * from "./core/contracting/contractRegistrar.js";
@@ -1,3 +0,0 @@
1
- export * from "./types/index.js";
2
- export * from "./utils/index.js";
3
- export * from "./core/contracting/contractRegistrar.js";
@@ -1,4 +0,0 @@
1
- import type { FastifyRequest, FastifyReply, FastifyInstance } from "fastify";
2
- export declare const authenticate: (req: FastifyRequest, res: FastifyReply, fastify: FastifyInstance) => Promise<never>;
3
- declare const _default: (fastify: FastifyInstance, opts?: Record<never, never>) => Promise<void>;
4
- export default _default;
@@ -1,80 +0,0 @@
1
- import jwt from "@fastify/jwt";
2
- import fastifyPlugin from "fastify-plugin";
3
- import configService from "../../core/config/configService.js";
4
- export const authenticate = async (req, res, fastify) => {
5
- {
6
- const { requireAuthentication } = configService.getConfig()?.global ?? {
7
- requireAuthentication: true,
8
- };
9
- const isAdminTagRequired = configService.isAdminTagRequired();
10
- // Skip JWT verification and database queries, if global.requireAuthentication is configured to false
11
- if (!requireAuthentication) {
12
- const mockUser = {
13
- _id: "SYSTEM",
14
- };
15
- req.user = mockUser;
16
- return;
17
- }
18
- try {
19
- await req.jwtVerify();
20
- // fetch current user data from the db
21
- const { _id } = req.user;
22
- const adminTag = await fastify.database
23
- .collection("raclette__core-tag")
24
- .findOne({ title: "ADMIN", locked: true, type: "system" });
25
- // IMPORTANT
26
- // due to some very weird behaviour, mongoose always returns empty results
27
- // so we are using mongodb directly until we fix this
28
- let isAdmin = false;
29
- const user = await fastify.database
30
- .collection("raclette__core-user")
31
- .findOne({ _id }, { projection: { password: 0, resetKey: 0 } });
32
- if (user.tags && adminTag) {
33
- user.tags.forEach((tag) => {
34
- if (adminTag._id === tag) {
35
- isAdmin = true;
36
- }
37
- });
38
- }
39
- if (isAdminTagRequired && !isAdmin) {
40
- fastify.log.error("User not allowed in workbench");
41
- throw new Error("User not allowed in workbench");
42
- }
43
- if (isAdmin) {
44
- user.isAdmin = true;
45
- }
46
- if (!user) {
47
- fastify.log.error("User not found");
48
- throw new Error("User not found");
49
- }
50
- const account = await fastify.database
51
- .collection("raclette__core-account")
52
- .findOne({ _id: user.account });
53
- user.account = account;
54
- req.user = user;
55
- }
56
- catch (error) {
57
- return res.send(error);
58
- }
59
- }
60
- };
61
- export default fastifyPlugin(async (fastify, opts = {}) => {
62
- // provide some sensible options
63
- const defaults = {
64
- secret: false,
65
- decode: { complete: true },
66
- sign: {
67
- iss: "api.projectjournal.pacifico.info",
68
- expiresIn: "30d",
69
- },
70
- verify: { allowedIss: "api.projectjournal.pacifico.info" },
71
- };
72
- // merge proved opts with defaults
73
- const mergedOptions = { ...defaults, ...opts };
74
- /* register the plugin */
75
- fastify.register(jwt, mergedOptions);
76
- // decorate the fastify instance, so we can call it anywhere
77
- fastify.decorate("authenticate", (req, res) => {
78
- return authenticate(req, res, fastify);
79
- });
80
- });
@@ -1,6 +0,0 @@
1
- import type { CacheOptions, CacheService } from "../../types/index.js";
2
- import type { RedisService } from "../../modules/cache/providers/redis/redisTypes.js";
3
- /**
4
- * Creates a cache service with the given options
5
- */
6
- export declare const createCacheService: (redis: RedisService, options?: CacheOptions) => CacheService;
@@ -1,131 +0,0 @@
1
- /**
2
- * Creates a cache service with the given options
3
- */
4
- export const createCacheService = (redis, options = {}) => {
5
- const prefix = options.prefix ? `${options.prefix}:` : "cache:";
6
- const defaultTtl = options.defaultTtl;
7
- const buildKey = (key) => `${prefix}${key}`;
8
- const service = {
9
- cache: async (key, data, options = {}) => {
10
- const fullKey = buildKey(key);
11
- // Default serialization/deserialization uses JSON
12
- const serialize = options.serialize || JSON.stringify;
13
- const serializedNewData = serialize(data);
14
- // Get previously cached data
15
- const previousData = await redis.get(fullKey);
16
- // Determine if data has changed
17
- const hasChanged = previousData === null || previousData !== serializedNewData;
18
- // Cache the new data if it changed or doesn't exist
19
- if (hasChanged) {
20
- const ttl = options.ttl ?? defaultTtl;
21
- if (ttl) {
22
- await redis.setex(fullKey, ttl, serializedNewData);
23
- }
24
- else {
25
- await redis.set(fullKey, serializedNewData);
26
- }
27
- }
28
- return {
29
- changed: hasChanged,
30
- data: data,
31
- };
32
- },
33
- get: async (key, deserialize = JSON.parse) => {
34
- const fullKey = buildKey(key);
35
- const data = await redis.get(fullKey);
36
- if (data === null) {
37
- return null;
38
- }
39
- return deserialize(data);
40
- },
41
- forceUpdate: async (key, data, options = {}) => {
42
- const fullKey = buildKey(key);
43
- const serialized = JSON.stringify(data);
44
- const ttl = options.ttl ?? defaultTtl;
45
- if (ttl) {
46
- await redis.setex(fullKey, ttl, serialized);
47
- }
48
- else {
49
- await redis.set(fullKey, serialized);
50
- }
51
- return data;
52
- },
53
- invalidate: async (key) => {
54
- const fullKey = buildKey(key);
55
- await redis.del(fullKey);
56
- },
57
- invalidatePattern: async (pattern) => {
58
- const fullPattern = buildKey(pattern);
59
- const keys = await redis.keys(fullPattern);
60
- if (keys.length > 0) {
61
- await redis.del(...keys);
62
- }
63
- return keys.length;
64
- },
65
- // Get all keys matching a pattern (within this service's namespace)
66
- getKeysByPattern: async (pattern) => {
67
- const fullPattern = buildKey(pattern);
68
- const keys = await redis.keys(fullPattern);
69
- // Strip the prefix to return clean keys to the caller
70
- return keys.map((key) => key.replace(prefix, ""));
71
- },
72
- // Get TTL for a specific key
73
- getTtl: async (key) => {
74
- const fullKey = buildKey(key);
75
- return await redis.ttl(fullKey);
76
- },
77
- // Get multiple keys with their metadata
78
- getKeysWithMetadata: async (pattern) => {
79
- const fullPattern = buildKey(pattern);
80
- const keys = await redis.keys(fullPattern);
81
- const metadata = await Promise.all(keys.map(async (fullKey) => {
82
- const cleanKey = fullKey.replace(prefix, "");
83
- const ttl = await redis.ttl(fullKey);
84
- return {
85
- key: cleanKey,
86
- ttl,
87
- exists: true,
88
- };
89
- }));
90
- return metadata;
91
- },
92
- // Invalidate multiple specific keys atomically
93
- invalidateMultiple: async (keys) => {
94
- if (keys.length === 0)
95
- return 0;
96
- const fullKeys = keys.map((key) => buildKey(key));
97
- await redis.del(...fullKeys);
98
- return keys.length;
99
- },
100
- // Check if a key exists
101
- exists: async (key) => {
102
- const fullKey = buildKey(key);
103
- const result = await redis.exists(fullKey);
104
- return result === 1;
105
- },
106
- // Get key information (value + metadata)
107
- getWithMetadata: async (key, deserialize = JSON.parse) => {
108
- const fullKey = buildKey(key);
109
- const [value, ttl, exists] = await Promise.all([
110
- redis.get(fullKey),
111
- redis.ttl(fullKey),
112
- redis.exists(fullKey),
113
- ]);
114
- return {
115
- value: value ? deserialize(value) : null,
116
- ttl,
117
- exists: exists === 1,
118
- };
119
- },
120
- namespace: (namespace, namespaceOptions = {}) => {
121
- const newPrefix = namespaceOptions.prefix || `${prefix}${namespace}:`;
122
- const newOptions = {
123
- ...options,
124
- ...namespaceOptions,
125
- prefix: newPrefix,
126
- };
127
- return createCacheService(redis, newOptions);
128
- },
129
- };
130
- return service;
131
- };
@@ -1,102 +0,0 @@
1
- export type CacheOptions = {
2
- prefix?: string;
3
- defaultTtl?: number;
4
- };
5
- export type CacheResult<T> = {
6
- changed: boolean;
7
- data: T;
8
- };
9
- export type CacheKeyMetadata = {
10
- key: string;
11
- ttl: number;
12
- exists: boolean;
13
- };
14
- export type CacheValueWithMetadata<T> = {
15
- value: T | null;
16
- ttl: number;
17
- exists: boolean;
18
- };
19
- export type CacheService = {
20
- /**
21
- * Caches data and returns whether it has changed
22
- * @param key The cache key
23
- * @param data The data to cache
24
- * @param options Additional options
25
- * @returns An object containing whether the data has changed and the cached data
26
- */
27
- cache<T>(key: string, data: T, options?: {
28
- ttl?: number;
29
- serialize?: (data: T) => string;
30
- deserialize?: (data: string) => T;
31
- }): Promise<CacheResult<T>>;
32
- /**
33
- * Retrieve data from cache
34
- * @param key The cache key
35
- * @param deserialize Function to deserialize the data (defaults to JSON.parse)
36
- * @returns The cached data or null if not found
37
- */
38
- get<T>(key: string, deserialize?: (data: string) => T): Promise<T | null>;
39
- /**
40
- * Replaces the entry with the given new data
41
- * @param key The cache key
42
- * @param data New data that will replace the old one
43
- * @param options Additional options
44
- */
45
- forceUpdate<T>(key: string, data: T, options?: {
46
- ttl?: number;
47
- }): Promise<T>;
48
- /**
49
- * Remove data from cache
50
- * @param key The cache key
51
- */
52
- invalidate(key: string): Promise<void>;
53
- /**
54
- * Remove all cache entries matching a pattern
55
- * @param pattern The key pattern to match (e.g., "user:*")
56
- * @returns The number of keys that were deleted
57
- */
58
- invalidatePattern(pattern: string): Promise<number>;
59
- /**
60
- * Get all keys matching a pattern (within this service's namespace)
61
- * @param pattern The key pattern to match (e.g., "user:*")
62
- * @returns Array of matching keys (without the service prefix)
63
- */
64
- getKeysByPattern(pattern: string): Promise<string[]>;
65
- /**
66
- * Get the TTL (time to live) for a specific key
67
- * @param key The cache key
68
- * @returns TTL in seconds (-1 if no expiry, -2 if key doesn't exist)
69
- */
70
- getTtl(key: string): Promise<number>;
71
- /**
72
- * Get multiple keys with their metadata
73
- * @param pattern The key pattern to match
74
- * @returns Array of objects containing key, ttl, and exists status
75
- */
76
- getKeysWithMetadata(pattern: string): Promise<CacheKeyMetadata[]>;
77
- /**
78
- * Remove multiple specific keys atomically
79
- * @param keys Array of cache keys to remove
80
- * @returns The number of keys that were deleted
81
- */
82
- invalidateMultiple(keys: string[]): Promise<number>;
83
- /**
84
- * Check if a key exists in the cache
85
- * @param key The cache key
86
- * @returns True if the key exists, false otherwise
87
- */
88
- exists(key: string): Promise<boolean>;
89
- /**
90
- * Get cached value along with its metadata
91
- * @param key The cache key
92
- * @param deserialize Function to deserialize the data (defaults to JSON.parse)
93
- * @returns Object containing value, TTL, and existence status
94
- */
95
- getWithMetadata<T>(key: string, deserialize?: (data: string) => T): Promise<CacheValueWithMetadata<T>>;
96
- /**
97
- * Create a namespaced cache service
98
- * @param namespace The namespace for all cache keys
99
- * @param options Additional options
100
- */
101
- namespace(namespace: string, options?: CacheOptions): CacheService;
102
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,11 +0,0 @@
1
- export declare const REDIS_CONFIG: {
2
- readonly LOGIN_ATTEMPTS: {
3
- readonly MAX_ATTEMPTS: number;
4
- readonly LOCKOUT_DURATION: number;
5
- readonly ATTEMPT_WINDOW: number;
6
- };
7
- readonly KEY_PREFIXES: {
8
- readonly LOGIN_ATTEMPTS: "login_attempts:";
9
- readonly LOGIN_LOCK: "login_lock:";
10
- };
11
- };
@@ -1,17 +0,0 @@
1
- export const REDIS_CONFIG = {
2
- LOGIN_ATTEMPTS: {
3
- MAX_ATTEMPTS: process.env.LOGIN_MAX_ATTEMPTS
4
- ? parseInt(process.env.LOGIN_MAX_ATTEMPTS)
5
- : 5,
6
- LOCKOUT_DURATION: process.env.LOGIN_LOCKOUT_DURATION
7
- ? parseInt(process.env.LOGIN_LOCKOUT_DURATION)
8
- : 15 * 60,
9
- ATTEMPT_WINDOW: process.env.LOGIN_ATTEMPT_WINDOW
10
- ? parseInt(process.env.LOGIN_ATTEMPT_WINDOW)
11
- : 30 * 60,
12
- },
13
- KEY_PREFIXES: {
14
- LOGIN_ATTEMPTS: "login_attempts:",
15
- LOGIN_LOCK: "login_lock:",
16
- },
17
- };
@@ -1,4 +0,0 @@
1
- import type { FastifyInstance } from "fastify";
2
- import type { RedisPluginOptions } from "./redisTypes.js";
3
- declare const _default: (fastify: FastifyInstance, options: RedisPluginOptions, done: any) => void;
4
- export default _default;