@raclettejs/core 0.0.4 → 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.
- package/CHANGELOG.md +23 -0
- package/README.md +7 -0
- package/dist/cli.js +4 -4
- package/dist/index.js +4 -4
- package/package.json +2 -2
- package/scripts/find-i18n-keys.cjs +29 -0
- package/services/backend/package.json +1 -3
- package/services/frontend/src/orchestrator/components/chip/UserChip.vue +1 -1
- package/services/frontend/src/orchestrator/components/menu/UserNotifications.vue +4 -2
- package/services/frontend/src/orchestrator/setup/i18n.ts +251 -157
- package/yarn.lock +4 -4
- package/dist/cli.js.map +0 -7
- package/dist/index.js.map +0 -7
- package/services/.DS_Store +0 -0
- package/services/backend/.DS_Store +0 -0
- package/services/backend/.env +0 -5
- package/services/backend/.vscode/launch.json +0 -18
- package/services/backend/dist/src/app.d.ts +0 -9
- package/services/backend/dist/src/app.js +0 -164
- package/services/backend/dist/src/core/backgroundTasks/taskManager.d.ts +0 -12
- package/services/backend/dist/src/core/backgroundTasks/taskManager.js +0 -135
- package/services/backend/dist/src/core/backgroundTasks/taskManagerTypes.d.ts +0 -19
- package/services/backend/dist/src/core/backgroundTasks/taskManagerTypes.js +0 -2
- package/services/backend/dist/src/core/backgroundTasks/toadSchedulerTypes.d.ts +0 -7
- package/services/backend/dist/src/core/backgroundTasks/toadSchedulerTypes.js +0 -1
- package/services/backend/dist/src/core/config/configService.d.ts +0 -38
- package/services/backend/dist/src/core/config/configService.js +0 -98
- package/services/backend/dist/src/core/config/configTypes.d.ts +0 -33
- package/services/backend/dist/src/core/config/configTypes.js +0 -5
- package/services/backend/dist/src/core/contracting/contractRegistrar.d.ts +0 -13
- package/services/backend/dist/src/core/contracting/contractRegistrar.js +0 -83
- package/services/backend/dist/src/core/contracting/contractTypes.d.ts +0 -18
- package/services/backend/dist/src/core/contracting/contractTypes.js +0 -1
- package/services/backend/dist/src/core/crud/crudRegistrar.d.ts +0 -6
- package/services/backend/dist/src/core/crud/crudRegistrar.js +0 -16
- package/services/backend/dist/src/core/crud/crudTypes.d.ts +0 -8
- package/services/backend/dist/src/core/crud/crudTypes.js +0 -1
- package/services/backend/dist/src/core/eventBus/eventBusEventMap.d.ts +0 -65
- package/services/backend/dist/src/core/eventBus/eventBusEventMap.js +0 -64
- package/services/backend/dist/src/core/eventBus/index.d.ts +0 -3
- package/services/backend/dist/src/core/eventBus/index.js +0 -7
- package/services/backend/dist/src/core/events/eventEmitter.d.ts +0 -13
- package/services/backend/dist/src/core/events/eventEmitter.js +0 -120
- package/services/backend/dist/src/core/http/headers.d.ts +0 -3
- package/services/backend/dist/src/core/http/headers.js +0 -22
- package/services/backend/dist/src/core/http/httpService.d.ts +0 -4
- package/services/backend/dist/src/core/http/httpService.js +0 -28
- package/services/backend/dist/src/core/http/httpTypes.d.ts +0 -15
- package/services/backend/dist/src/core/http/httpTypes.js +0 -1
- package/services/backend/dist/src/core/http/request-params.plugin.d.ts +0 -2
- package/services/backend/dist/src/core/http/request-params.plugin.js +0 -34
- package/services/backend/dist/src/core/payload/payloadRegistrar.d.ts +0 -45
- package/services/backend/dist/src/core/payload/payloadRegistrar.js +0 -121
- package/services/backend/dist/src/core/payload/payloadTypes.d.ts +0 -42
- package/services/backend/dist/src/core/payload/payloadTypes.js +0 -1
- package/services/backend/dist/src/core/pluginSystem/configGenerator/generatorTypes.d.ts +0 -49
- package/services/backend/dist/src/core/pluginSystem/configGenerator/generatorTypes.js +0 -1
- package/services/backend/dist/src/core/pluginSystem/configGenerator/index.d.ts +0 -14
- package/services/backend/dist/src/core/pluginSystem/configGenerator/index.js +0 -342
- package/services/backend/dist/src/core/pluginSystem/pluginFastifyInstance.d.ts +0 -3
- package/services/backend/dist/src/core/pluginSystem/pluginFastifyInstance.js +0 -161
- package/services/backend/dist/src/core/pluginSystem/pluginLoader.d.ts +0 -5
- package/services/backend/dist/src/core/pluginSystem/pluginLoader.js +0 -317
- package/services/backend/dist/src/core/pluginSystem/pluginTypes.d.ts +0 -51
- package/services/backend/dist/src/core/pluginSystem/pluginTypes.js +0 -6
- package/services/backend/dist/src/core/sockets/createSystemEventHandlers.d.ts +0 -20
- package/services/backend/dist/src/core/sockets/createSystemEventHandlers.js +0 -74
- package/services/backend/dist/src/core/sockets/index.d.ts +0 -2
- package/services/backend/dist/src/core/sockets/index.js +0 -65
- package/services/backend/dist/src/core/sockets/socketManager.d.ts +0 -3
- package/services/backend/dist/src/core/sockets/socketManager.js +0 -125
- package/services/backend/dist/src/core/sockets/socketTypes.d.ts +0 -32
- package/services/backend/dist/src/core/sockets/socketTypes.js +0 -1
- package/services/backend/dist/src/core/validation/schemaGenerator.d.ts +0 -6
- package/services/backend/dist/src/core/validation/schemaGenerator.js +0 -242
- package/services/backend/dist/src/core/validation/schemaTypes.d.ts +0 -15
- package/services/backend/dist/src/core/validation/schemaTypes.js +0 -1
- package/services/backend/dist/src/core/validation/sharedSchemas.d.ts +0 -8
- package/services/backend/dist/src/core/validation/sharedSchemas.js +0 -7
- package/services/backend/dist/src/corePlugins/raclette__core/client/generated-config.d.ts +0 -304
- package/services/backend/dist/src/corePlugins/raclette__core/client/generated-config.js +0 -359
- package/services/backend/dist/src/corePlugins/raclette__core/client/index.d.ts +0 -2
- package/services/backend/dist/src/corePlugins/raclette__core/client/index.js +0 -2
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.model.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.model.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.schema.d.ts +0 -36
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.schema.js +0 -29
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.service.d.ts +0 -74
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/account.service.js +0 -242
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/events/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/events/index.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/helpers/crud.d.ts +0 -2
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/helpers/crud.js +0 -9
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/helpers/payload.d.ts +0 -4
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/helpers/payload.js +0 -13
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/index.d.ts +0 -16
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/index.js +0 -48
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/index.js +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.get.d.ts +0 -24
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.get.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.getAll.d.ts +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.getAll.js +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.hardDelete.d.ts +0 -26
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.hardDelete.js +0 -32
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.patch.d.ts +0 -39
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.patch.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.post.d.ts +0 -30
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.post.js +0 -27
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.remove.d.ts +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/account/routes/route.account.remove.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.model.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.model.js +0 -92
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.schema.d.ts +0 -128
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.schema.js +0 -97
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.service.d.ts +0 -63
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/composition.service.js +0 -212
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/events/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/events/index.js +0 -22
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/helpers/crud.d.ts +0 -2
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/helpers/crud.js +0 -10
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/helpers/payload.d.ts +0 -4
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/helpers/payload.js +0 -11
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/index.d.ts +0 -46
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/index.js +0 -51
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/index.js +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.get.d.ts +0 -24
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.get.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.getAll.d.ts +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.getAll.js +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.hardDelete.d.ts +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.hardDelete.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.patch.d.ts +0 -49
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.patch.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.post.d.ts +0 -40
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.post.js +0 -27
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.remove.d.ts +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/composition/routes/route.composition.remove.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/events/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/events/index.js +0 -22
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/helpers/crud.d.ts +0 -2
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/helpers/crud.js +0 -9
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/helpers/payload.d.ts +0 -4
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/helpers/payload.js +0 -11
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/index.d.ts +0 -16
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/index.js +0 -48
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.model.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.model.js +0 -61
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.schema.d.ts +0 -86
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.schema.js +0 -74
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.service.d.ts +0 -79
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/interactionLink.service.js +0 -272
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/index.js +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.get.d.ts +0 -24
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.get.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.getAll.d.ts +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.getAll.js +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.hardDelete.d.ts +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.hardDelete.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.patch.d.ts +0 -39
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.patch.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.post.d.ts +0 -30
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.post.js +0 -27
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.remove.d.ts +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/interactionLink/routes/route.interactionLink.remove.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/events/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/events/index.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/helpers/crud.d.ts +0 -2
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/helpers/crud.js +0 -9
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/helpers/payload.d.ts +0 -4
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/helpers/payload.js +0 -13
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/index.d.ts +0 -17
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/index.js +0 -49
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.model.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.model.js +0 -30
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.schema.d.ts +0 -61
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.schema.js +0 -65
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.service.d.ts +0 -68
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/project.service.js +0 -230
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/index.js +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.get.d.ts +0 -24
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.get.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.getAll.d.ts +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.getAll.js +0 -28
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.hardDelete.d.ts +0 -26
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.hardDelete.js +0 -32
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.patch.d.ts +0 -38
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.patch.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.post.d.ts +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.post.js +0 -27
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.remove.d.ts +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/project/routes/route.project.remove.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/events/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/events/index.js +0 -39
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/helpers/crud.d.ts +0 -2
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/helpers/crud.js +0 -9
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/helpers/payload.d.ts +0 -4
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/helpers/payload.js +0 -13
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/index.d.ts +0 -17
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/index.js +0 -49
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/index.js +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.get.d.ts +0 -24
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.get.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.getAll.d.ts +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.getAll.js +0 -28
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.hardDelete.d.ts +0 -26
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.hardDelete.js +0 -32
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.patch.d.ts +0 -39
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.patch.js +0 -34
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.post.d.ts +0 -40
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.post.js +0 -35
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.remove.d.ts +0 -26
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/routes/route.tag.remove.js +0 -32
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.model.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.model.js +0 -74
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.schema.d.ts +0 -68
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.schema.js +0 -71
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.service.d.ts +0 -65
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/tag/tag.service.js +0 -232
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/events/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/events/index.js +0 -31
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/helpers/crud.d.ts +0 -2
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/helpers/crud.js +0 -9
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/helpers/payload.d.ts +0 -4
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/helpers/payload.js +0 -11
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/index.d.ts +0 -17
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/index.js +0 -51
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/index.js +0 -15
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.get.d.ts +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.get.js +0 -33
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.getAll.d.ts +0 -25
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.getAll.js +0 -35
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.patch.d.ts +0 -43
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.patch.js +0 -37
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.patchLastProject.d.ts +0 -23
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.patchLastProject.js +0 -29
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.post.d.ts +0 -34
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.post.js +0 -28
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.remove.d.ts +0 -26
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/routes/route.user.remove.js +0 -35
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.model.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.model.js +0 -145
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.schema.d.ts +0 -120
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.schema.js +0 -109
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.service.d.ts +0 -69
- package/services/backend/dist/src/corePlugins/raclette__core/server/datatypes/user/user.service.js +0 -225
- package/services/backend/dist/src/corePlugins/raclette__core/server/index.d.ts +0 -3
- package/services/backend/dist/src/corePlugins/raclette__core/server/index.js +0 -32
- package/services/backend/dist/src/domains/index.d.ts +0 -3
- package/services/backend/dist/src/domains/index.js +0 -8
- package/services/backend/dist/src/domains/system/index.d.ts +0 -3
- package/services/backend/dist/src/domains/system/index.js +0 -5
- package/services/backend/dist/src/domains/system/routes/index.d.ts +0 -3
- package/services/backend/dist/src/domains/system/routes/index.js +0 -13
- package/services/backend/dist/src/domains/system/routes/route.admin.redis.d.ts +0 -47
- package/services/backend/dist/src/domains/system/routes/route.admin.redis.js +0 -81
- package/services/backend/dist/src/domains/system/routes/route.deploy.d.ts +0 -14
- package/services/backend/dist/src/domains/system/routes/route.deploy.js +0 -20
- package/services/backend/dist/src/domains/system/routes/route.user.checkToken.d.ts +0 -12
- package/services/backend/dist/src/domains/system/routes/route.user.checkToken.js +0 -40
- package/services/backend/dist/src/domains/system/routes/route.user.login.d.ts +0 -44
- package/services/backend/dist/src/domains/system/routes/route.user.login.js +0 -163
- package/services/backend/dist/src/helpers/index.d.ts +0 -11
- package/services/backend/dist/src/helpers/index.js +0 -13
- package/services/backend/dist/src/index.d.ts +0 -3
- package/services/backend/dist/src/index.js +0 -3
- package/services/backend/dist/src/modules/authentication/index.d.ts +0 -4
- package/services/backend/dist/src/modules/authentication/index.js +0 -80
- package/services/backend/dist/src/modules/cache/cacheManager.d.ts +0 -6
- package/services/backend/dist/src/modules/cache/cacheManager.js +0 -131
- package/services/backend/dist/src/modules/cache/cacheTypes.d.ts +0 -102
- package/services/backend/dist/src/modules/cache/cacheTypes.js +0 -1
- package/services/backend/dist/src/modules/cache/providers/redis/redisConfig.d.ts +0 -11
- package/services/backend/dist/src/modules/cache/providers/redis/redisConfig.js +0 -17
- package/services/backend/dist/src/modules/cache/providers/redis/redisConnection.d.ts +0 -4
- package/services/backend/dist/src/modules/cache/providers/redis/redisConnection.js +0 -65
- package/services/backend/dist/src/modules/cache/providers/redis/redisTypes.d.ts +0 -18
- package/services/backend/dist/src/modules/cache/providers/redis/redisTypes.js +0 -1
- package/services/backend/dist/src/modules/database/providers/mongodb/mongoConnection.d.ts +0 -4
- package/services/backend/dist/src/modules/database/providers/mongodb/mongoConnection.js +0 -21
- package/services/backend/dist/src/modules/database/providers/mongodb/service.d.ts +0 -7
- package/services/backend/dist/src/modules/database/providers/mongodb/service.js +0 -1
- package/services/backend/dist/src/server.d.ts +0 -1
- package/services/backend/dist/src/server.js +0 -98
- package/services/backend/dist/src/shared/helper/mongoHelper.d.ts +0 -3
- package/services/backend/dist/src/shared/helper/mongoHelper.js +0 -59
- package/services/backend/dist/src/shared/helper/pluginHelper.d.ts +0 -19
- package/services/backend/dist/src/shared/helper/pluginHelper.js +0 -33
- package/services/backend/dist/src/shared/schemas/core/Account.schema.d.ts +0 -63
- package/services/backend/dist/src/shared/schemas/core/Account.schema.js +0 -74
- package/services/backend/dist/src/shared/schemas/core/Composition.schema.d.ts +0 -103
- package/services/backend/dist/src/shared/schemas/core/Composition.schema.js +0 -132
- package/services/backend/dist/src/shared/schemas/core/CompositionCreate.schema.d.ts +0 -82
- package/services/backend/dist/src/shared/schemas/core/CompositionCreate.schema.js +0 -105
- package/services/backend/dist/src/shared/schemas/core/CompositionUpdate.schema.d.ts +0 -78
- package/services/backend/dist/src/shared/schemas/core/CompositionUpdate.schema.js +0 -95
- package/services/backend/dist/src/shared/schemas/core/InteractionLink.schema.d.ts +0 -84
- package/services/backend/dist/src/shared/schemas/core/InteractionLink.schema.js +0 -97
- package/services/backend/dist/src/shared/schemas/core/InteractionLinkCreate.schema.d.ts +0 -63
- package/services/backend/dist/src/shared/schemas/core/InteractionLinkCreate.schema.js +0 -70
- package/services/backend/dist/src/shared/schemas/core/InteractionLinkUpdate.schema.d.ts +0 -63
- package/services/backend/dist/src/shared/schemas/core/InteractionLinkUpdate.schema.js +0 -70
- package/services/backend/dist/src/shared/schemas/core/Project.schema.d.ts +0 -53
- package/services/backend/dist/src/shared/schemas/core/Project.schema.js +0 -58
- package/services/backend/dist/src/shared/schemas/core/ProjectCreate.schema.d.ts +0 -41
- package/services/backend/dist/src/shared/schemas/core/ProjectCreate.schema.js +0 -41
- package/services/backend/dist/src/shared/schemas/core/ProjectUpdate.schema.d.ts +0 -38
- package/services/backend/dist/src/shared/schemas/core/ProjectUpdate.schema.js +0 -38
- package/services/backend/dist/src/shared/schemas/core/Tag.schema.d.ts +0 -68
- package/services/backend/dist/src/shared/schemas/core/Tag.schema.js +0 -81
- package/services/backend/dist/src/shared/schemas/core/TagCreate.schema.d.ts +0 -52
- package/services/backend/dist/src/shared/schemas/core/TagCreate.schema.js +0 -60
- package/services/backend/dist/src/shared/schemas/core/TagUpdate.schema.d.ts +0 -47
- package/services/backend/dist/src/shared/schemas/core/TagUpdate.schema.js +0 -55
- package/services/backend/dist/src/shared/schemas/core/Trigger.schema.d.ts +0 -25
- package/services/backend/dist/src/shared/schemas/core/Trigger.schema.js +0 -27
- package/services/backend/dist/src/shared/schemas/core/User.schema.d.ts +0 -161
- package/services/backend/dist/src/shared/schemas/core/User.schema.js +0 -185
- package/services/backend/dist/src/shared/schemas/core/UserCreate.schema.d.ts +0 -59
- package/services/backend/dist/src/shared/schemas/core/UserCreate.schema.js +0 -67
- package/services/backend/dist/src/shared/schemas/core/UserUpdate.schema.d.ts +0 -52
- package/services/backend/dist/src/shared/schemas/core/UserUpdate.schema.js +0 -52
- package/services/backend/dist/src/shared/schemas/core/Widget.schema.d.ts +0 -25
- package/services/backend/dist/src/shared/schemas/core/Widget.schema.js +0 -29
- package/services/backend/dist/src/shared/schemas/core/WidgetLayout.schema.d.ts +0 -34
- package/services/backend/dist/src/shared/schemas/core/WidgetLayout.schema.js +0 -41
- package/services/backend/dist/src/shared/types/core/Account.types.d.ts +0 -19
- package/services/backend/dist/src/shared/types/core/Account.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/Composition.types.d.ts +0 -31
- package/services/backend/dist/src/shared/types/core/Composition.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/CompositionCreate.types.d.ts +0 -25
- package/services/backend/dist/src/shared/types/core/CompositionCreate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/CompositionUpdate.types.d.ts +0 -25
- package/services/backend/dist/src/shared/types/core/CompositionUpdate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/InteractionLink.types.d.ts +0 -25
- package/services/backend/dist/src/shared/types/core/InteractionLink.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/InteractionLinkCreate.types.d.ts +0 -19
- package/services/backend/dist/src/shared/types/core/InteractionLinkCreate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/InteractionLinkUpdate.types.d.ts +0 -19
- package/services/backend/dist/src/shared/types/core/InteractionLinkUpdate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/Project.types.d.ts +0 -18
- package/services/backend/dist/src/shared/types/core/Project.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/ProjectCreate.types.d.ts +0 -15
- package/services/backend/dist/src/shared/types/core/ProjectCreate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/ProjectUpdate.types.d.ts +0 -15
- package/services/backend/dist/src/shared/types/core/ProjectUpdate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/Tag.types.d.ts +0 -21
- package/services/backend/dist/src/shared/types/core/Tag.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/TagCreate.types.d.ts +0 -17
- package/services/backend/dist/src/shared/types/core/TagCreate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/TagUpdate.types.d.ts +0 -17
- package/services/backend/dist/src/shared/types/core/TagUpdate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/Trigger.types.d.ts +0 -11
- package/services/backend/dist/src/shared/types/core/Trigger.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/User.types.d.ts +0 -50
- package/services/backend/dist/src/shared/types/core/User.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/UserCreate.types.d.ts +0 -22
- package/services/backend/dist/src/shared/types/core/UserCreate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/UserUpdate.types.d.ts +0 -21
- package/services/backend/dist/src/shared/types/core/UserUpdate.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/Widget.types.d.ts +0 -14
- package/services/backend/dist/src/shared/types/core/Widget.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/WidgetLayout.types.d.ts +0 -17
- package/services/backend/dist/src/shared/types/core/WidgetLayout.types.js +0 -8
- package/services/backend/dist/src/shared/types/core/index.d.ts +0 -26
- package/services/backend/dist/src/shared/types/core/index.js +0 -8
- package/services/backend/dist/src/shared/types/dataTypes/index.d.ts +0 -5
- package/services/backend/dist/src/shared/types/dataTypes/index.js +0 -6
- package/services/backend/dist/src/shared/types/dataTypes/tags.d.ts +0 -12
- package/services/backend/dist/src/shared/types/dataTypes/tags.js +0 -17
- package/services/backend/dist/src/shared/types/global/api.d.ts +0 -10
- package/services/backend/dist/src/shared/types/global/api.js +0 -1
- package/services/backend/dist/src/shared/types/global/search.d.ts +0 -7
- package/services/backend/dist/src/shared/types/global/search.js +0 -13
- package/services/backend/dist/src/shared/types/index.d.ts +0 -9
- package/services/backend/dist/src/shared/types/index.js +0 -8
- package/services/backend/dist/src/shared/types/plugins/index.d.ts +0 -8
- package/services/backend/dist/src/shared/types/plugins/index.js +0 -8
- package/services/backend/dist/src/types/index.d.ts +0 -12
- package/services/backend/dist/src/types/index.js +0 -12
- package/services/backend/dist/src/utils/errors.d.ts +0 -16
- package/services/backend/dist/src/utils/errors.js +0 -28
- package/services/backend/dist/src/utils/index.d.ts +0 -2
- package/services/backend/dist/src/utils/index.js +0 -2
- package/services/backend/dist/src/utils/request.utils.d.ts +0 -8
- package/services/backend/dist/src/utils/request.utils.js +0 -12
- package/services/backend/dist/types/index.d.ts +0 -3
- package/services/backend/dist/types/index.js +0 -2
- package/services/backend/src/.DS_Store +0 -0
- package/services/backend/src/core/.DS_Store +0 -0
- package/services/backend/src/core/pluginSystem/.DS_Store +0 -0
- package/services/backend/src/domains/.DS_Store +0 -0
- package/services/backend/src/domains/system/.DS_Store +0 -0
- package/services/backend/src/ssh-keys/krake +0 -8
- package/services/backend/src/ssh-keys/krake.pub +0 -1
- package/services/frontend/.DS_Store +0 -0
- package/services/frontend/src/.DS_Store +0 -0
- package/services/frontend/src/core/.DS_Store +0 -0
- package/services/frontend/src/core/lib/.DS_Store +0 -0
- package/services/frontend/src/orchestrator/.DS_Store +0 -0
- package/services/frontend/src/orchestrator/assets/fonts/.DS_Store +0 -0
- package/services/frontend/src/orchestrator/assets/styles/.DS_Store +0 -0
- package/services/frontend/src/orchestrator/components/.DS_Store +0 -0
- package/services/frontend/src/orchestrator/components/utils/.DS_Store +0 -0
- 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,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
|
-
};
|