@forklaunch/core 0.2.6 → 0.2.7
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/lib/jest.config.d.ts.map +1 -1
- package/lib/jest.config.js +0 -2
- package/lib/src/http/guards/isForklaunchRouter.d.ts +4 -0
- package/lib/src/http/guards/isForklaunchRouter.d.ts.map +1 -0
- package/lib/src/http/guards/isForklaunchRouter.js +7 -0
- package/lib/src/http/guards/isTypedHandler.d.ts +1 -1
- package/lib/src/http/guards/isTypedHandler.d.ts.map +1 -1
- package/lib/src/http/handlers/typedAuthHandler.d.ts +5 -0
- package/lib/src/http/handlers/typedAuthHandler.d.ts.map +1 -0
- package/lib/src/http/handlers/typedAuthHandler.js +3 -0
- package/lib/src/http/handlers/typedHandler.d.ts +0 -6
- package/lib/src/http/handlers/typedHandler.d.ts.map +1 -1
- package/lib/src/http/index.d.ts +2 -0
- package/lib/src/http/index.d.ts.map +1 -1
- package/lib/src/http/index.js +2 -0
- package/lib/src/http/middleware/request/auth.middleware.d.ts +3 -18
- package/lib/src/http/middleware/request/auth.middleware.d.ts.map +1 -1
- package/lib/src/http/middleware/request/auth.middleware.js +104 -69
- package/lib/src/http/openApiV3Generator/openApiV3Generator.js +1 -1
- package/lib/src/http/router/expressLikeRouter.d.ts.map +1 -1
- package/lib/src/http/router/expressLikeRouter.js +4 -23
- package/lib/src/http/types/apiDefinition.types.d.ts +36 -13
- package/lib/src/http/types/apiDefinition.types.d.ts.map +1 -1
- package/lib/src/http/types/contractDetails.types.d.ts +53 -11
- package/lib/src/http/types/contractDetails.types.d.ts.map +1 -1
- package/lib/src/http/types/expressLikeRouter.types.d.ts +1 -1
- package/lib/src/http/types/expressLikeRouter.types.d.ts.map +1 -1
- package/lib/src/http/types/typedHandler.types.d.ts +10 -0
- package/lib/src/http/types/typedHandler.types.d.ts.map +1 -0
- package/lib/tests/expressLikeRouterInstantiation.test.js +47 -2
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -15
- package/LICENSE +0 -21
- package/lib/dist/cache/index.d.ts +0 -4
- package/lib/dist/cache/index.d.ts.map +0 -1
- package/lib/dist/cache/index.js +0 -3
- package/lib/dist/cache/interfaces/ttlCache.interface.d.ts +0 -2
- package/lib/dist/cache/interfaces/ttlCache.interface.d.ts.map +0 -1
- package/lib/dist/cache/redisTtlCache.d.ts +0 -353
- package/lib/dist/cache/redisTtlCache.d.ts.map +0 -1
- package/lib/dist/cache/redisTtlCache.js +0 -98
- package/lib/dist/cache/types/ttlCacheRecord.types.d.ts +0 -2
- package/lib/dist/cache/types/ttlCacheRecord.types.d.ts.map +0 -1
- package/lib/dist/cache/types/ttlCacheRecord.types.js +0 -1
- package/lib/dist/controllers/index.d.ts +0 -2
- package/lib/dist/controllers/index.d.ts.map +0 -1
- package/lib/dist/controllers/index.js +0 -1
- package/lib/dist/controllers/interfaces/controller.interface.d.ts +0 -2
- package/lib/dist/controllers/interfaces/controller.interface.d.ts.map +0 -1
- package/lib/dist/controllers/interfaces/controller.interface.js +0 -1
- package/lib/dist/database/index.d.ts +0 -2
- package/lib/dist/database/index.d.ts.map +0 -1
- package/lib/dist/database/index.js +0 -1
- package/lib/dist/database/mikro/models/entities/base.entity.d.ts +0 -26
- package/lib/dist/database/mikro/models/entities/base.entity.d.ts.map +0 -1
- package/lib/dist/database/mikro/models/entities/base.entity.js +0 -46
- package/lib/dist/entityMapper/index.d.ts +0 -3
- package/lib/dist/entityMapper/index.d.ts.map +0 -1
- package/lib/dist/entityMapper/index.js +0 -2
- package/lib/dist/entityMapper/interfaces/entityMapper.interface.d.ts +0 -2
- package/lib/dist/entityMapper/interfaces/entityMapper.interface.d.ts.map +0 -1
- package/lib/dist/entityMapper/interfaces/entityMapper.interface.js +0 -1
- package/lib/dist/entityMapper/models/baseEntityMapper.model.d.ts +0 -63
- package/lib/dist/entityMapper/models/baseEntityMapper.model.d.ts.map +0 -1
- package/lib/dist/entityMapper/models/baseEntityMapper.model.js +0 -75
- package/lib/dist/entityMapper/models/requestEntityMapper.model.d.ts +0 -58
- package/lib/dist/entityMapper/models/requestEntityMapper.model.d.ts.map +0 -1
- package/lib/dist/entityMapper/models/requestEntityMapper.model.js +0 -70
- package/lib/dist/entityMapper/models/responseEntityMapper.model.d.ts +0 -56
- package/lib/dist/entityMapper/models/responseEntityMapper.model.d.ts.map +0 -1
- package/lib/dist/entityMapper/models/responseEntityMapper.model.js +0 -65
- package/lib/dist/entityMapper/types/entityMapper.types.d.ts +0 -2
- package/lib/dist/entityMapper/types/entityMapper.types.d.ts.map +0 -1
- package/lib/dist/entityMapper/types/entityMapper.types.js +0 -1
- package/lib/dist/http/guards/isHttpContractDetails.d.ts +0 -5
- package/lib/dist/http/guards/isHttpContractDetails.d.ts.map +0 -1
- package/lib/dist/http/guards/isHttpContractDetails.js +0 -6
- package/lib/dist/http/guards/isResponseShape.d.ts +0 -2
- package/lib/dist/http/guards/isResponseShape.d.ts.map +0 -1
- package/lib/dist/http/guards/isResponseShape.js +0 -7
- package/lib/dist/http/index.d.ts +0 -6
- package/lib/dist/http/index.d.ts.map +0 -1
- package/lib/dist/http/index.js +0 -5
- package/lib/dist/http/interfaces/expressLikeApplication.interface.d.ts +0 -12
- package/lib/dist/http/interfaces/expressLikeApplication.interface.d.ts.map +0 -1
- package/lib/dist/http/interfaces/expressLikeApplication.interface.js +0 -14
- package/lib/dist/http/interfaces/expressLikeRouter.interface.d.ts +0 -103
- package/lib/dist/http/interfaces/expressLikeRouter.interface.d.ts.map +0 -1
- package/lib/dist/http/interfaces/expressLikeRouter.interface.js +0 -336
- package/lib/dist/http/interfaces/index.d.ts +0 -3
- package/lib/dist/http/interfaces/index.d.ts.map +0 -1
- package/lib/dist/http/interfaces/index.js +0 -2
- package/lib/dist/http/middleware/index.d.ts +0 -3
- package/lib/dist/http/middleware/index.d.ts.map +0 -1
- package/lib/dist/http/middleware/index.js +0 -2
- package/lib/dist/http/middleware/request.middleware.d.ts +0 -69
- package/lib/dist/http/middleware/request.middleware.d.ts.map +0 -1
- package/lib/dist/http/middleware/request.middleware.js +0 -210
- package/lib/dist/http/middleware/response.middleware.d.ts +0 -27
- package/lib/dist/http/middleware/response.middleware.d.ts.map +0 -1
- package/lib/dist/http/middleware/response.middleware.js +0 -52
- package/lib/dist/http/openApiV3Generator/index.d.ts +0 -2
- package/lib/dist/http/openApiV3Generator/index.d.ts.map +0 -1
- package/lib/dist/http/openApiV3Generator/index.js +0 -1
- package/lib/dist/http/openApiV3Generator/openApiV3Generator.d.ts +0 -11
- package/lib/dist/http/openApiV3Generator/openApiV3Generator.d.ts.map +0 -1
- package/lib/dist/http/openApiV3Generator/openApiV3Generator.js +0 -167
- package/lib/dist/http/types/apiDefinition.types.d.ts +0 -2
- package/lib/dist/http/types/apiDefinition.types.d.ts.map +0 -1
- package/lib/dist/http/types/apiDefinition.types.js +0 -1
- package/lib/dist/http/types/contractDetails.types.d.ts +0 -2
- package/lib/dist/http/types/contractDetails.types.d.ts.map +0 -1
- package/lib/dist/http/types/contractDetails.types.js +0 -1
- package/lib/dist/http/types/index.d.ts +0 -4
- package/lib/dist/http/types/index.d.ts.map +0 -1
- package/lib/dist/http/types/index.js +0 -3
- package/lib/dist/http/types/router.types.d.ts +0 -2
- package/lib/dist/http/types/router.types.d.ts.map +0 -1
- package/lib/dist/http/types/router.types.js +0 -1
- package/lib/dist/http/utils/enrichExpressLikeSend.d.ts +0 -28
- package/lib/dist/http/utils/enrichExpressLikeSend.d.ts.map +0 -1
- package/lib/dist/http/utils/enrichExpressLikeSend.js +0 -50
- package/lib/dist/http/utils/httpStatusCodes.d.ts +0 -986
- package/lib/dist/http/utils/httpStatusCodes.d.ts.map +0 -1
- package/lib/dist/http/utils/httpStatusCodes.js +0 -1039
- package/lib/dist/http/utils/index.d.ts +0 -3
- package/lib/dist/http/utils/index.d.ts.map +0 -1
- package/lib/dist/http/utils/index.js +0 -2
- package/lib/dist/index.d.ts +0 -7
- package/lib/dist/index.d.ts.map +0 -1
- package/lib/dist/index.js +0 -6
- package/lib/dist/jest.config.d.ts +0 -15
- package/lib/dist/jest.config.d.ts.map +0 -1
- package/lib/dist/jest.config.js +0 -21
- package/lib/dist/lib/index.d.ts +0 -7
- package/lib/dist/lib/index.d.ts.map +0 -1
- package/lib/dist/lib/index.js +0 -6
- package/lib/dist/lib/jest.config.d.ts +0 -15
- package/lib/dist/lib/jest.config.d.ts.map +0 -1
- package/lib/dist/lib/jest.config.js +0 -21
- package/lib/dist/lib/src/cache/index.d.ts +0 -4
- package/lib/dist/lib/src/cache/index.d.ts.map +0 -1
- package/lib/dist/lib/src/cache/index.js +0 -3
- package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.d.ts +0 -2
- package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.d.ts.map +0 -1
- package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.js +0 -1
- package/lib/dist/lib/src/cache/redisTtlCache.d.ts +0 -353
- package/lib/dist/lib/src/cache/redisTtlCache.d.ts.map +0 -1
- package/lib/dist/lib/src/cache/redisTtlCache.js +0 -98
- package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.d.ts +0 -2
- package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.d.ts.map +0 -1
- package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.js +0 -1
- package/lib/dist/lib/src/controllers/index.d.ts +0 -2
- package/lib/dist/lib/src/controllers/index.d.ts.map +0 -1
- package/lib/dist/lib/src/controllers/index.js +0 -1
- package/lib/dist/lib/src/controllers/interfaces/controller.interface.d.ts +0 -2
- package/lib/dist/lib/src/controllers/interfaces/controller.interface.d.ts.map +0 -1
- package/lib/dist/lib/src/controllers/interfaces/controller.interface.js +0 -1
- package/lib/dist/lib/src/database/index.d.ts +0 -2
- package/lib/dist/lib/src/database/index.d.ts.map +0 -1
- package/lib/dist/lib/src/database/index.js +0 -1
- package/lib/dist/lib/src/database/mikro/models/entities/base.entity.d.ts +0 -26
- package/lib/dist/lib/src/database/mikro/models/entities/base.entity.d.ts.map +0 -1
- package/lib/dist/lib/src/database/mikro/models/entities/base.entity.js +0 -46
- package/lib/dist/lib/src/domainMapper/index.d.ts +0 -3
- package/lib/dist/lib/src/domainMapper/index.d.ts.map +0 -1
- package/lib/dist/lib/src/domainMapper/index.js +0 -2
- package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts +0 -2
- package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts.map +0 -1
- package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.js +0 -1
- package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.d.ts +0 -63
- package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.d.ts.map +0 -1
- package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.js +0 -75
- package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.d.ts +0 -58
- package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.d.ts.map +0 -1
- package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.js +0 -70
- package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.d.ts +0 -56
- package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.d.ts.map +0 -1
- package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.js +0 -65
- package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.d.ts +0 -2
- package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.d.ts.map +0 -1
- package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.js +0 -1
- package/lib/dist/lib/src/dtoMapper/index.d.ts +0 -3
- package/lib/dist/lib/src/dtoMapper/index.d.ts.map +0 -1
- package/lib/dist/lib/src/dtoMapper/index.js +0 -2
- package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts +0 -2
- package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts.map +0 -1
- package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.js +0 -1
- package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts +0 -63
- package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts.map +0 -1
- package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.js +0 -75
- package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts +0 -58
- package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts.map +0 -1
- package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.js +0 -70
- package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts +0 -56
- package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts.map +0 -1
- package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.js +0 -65
- package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.d.ts +0 -2
- package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.d.ts.map +0 -1
- package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.js +0 -1
- package/lib/dist/lib/src/http/application/expressLikeApplication.d.ts +0 -18
- package/lib/dist/lib/src/http/application/expressLikeApplication.d.ts.map +0 -1
- package/lib/dist/lib/src/http/application/expressLikeApplication.js +0 -20
- package/lib/dist/lib/src/http/guards/isHttpContractDetails.d.ts +0 -5
- package/lib/dist/lib/src/http/guards/isHttpContractDetails.d.ts.map +0 -1
- package/lib/dist/lib/src/http/guards/isHttpContractDetails.js +0 -6
- package/lib/dist/lib/src/http/guards/isResponseShape.d.ts +0 -2
- package/lib/dist/lib/src/http/guards/isResponseShape.d.ts.map +0 -1
- package/lib/dist/lib/src/http/guards/isResponseShape.js +0 -7
- package/lib/dist/lib/src/http/handler/typedHandler.d.ts +0 -21
- package/lib/dist/lib/src/http/handler/typedHandler.d.ts.map +0 -1
- package/lib/dist/lib/src/http/handler/typedHandler.js +0 -25
- package/lib/dist/lib/src/http/index.d.ts +0 -11
- package/lib/dist/lib/src/http/index.d.ts.map +0 -1
- package/lib/dist/lib/src/http/index.js +0 -10
- package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.d.ts +0 -12
- package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.d.ts.map +0 -1
- package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.js +0 -14
- package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.d.ts +0 -2
- package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.d.ts.map +0 -1
- package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.js +0 -1
- package/lib/dist/lib/src/http/interfaces/index.d.ts +0 -3
- package/lib/dist/lib/src/http/interfaces/index.d.ts.map +0 -1
- package/lib/dist/lib/src/http/interfaces/index.js +0 -2
- package/lib/dist/lib/src/http/middleware/index.d.ts +0 -3
- package/lib/dist/lib/src/http/middleware/index.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/index.js +0 -2
- package/lib/dist/lib/src/http/middleware/request/auth.middleware.d.ts +0 -27
- package/lib/dist/lib/src/http/middleware/request/auth.middleware.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/request/auth.middleware.js +0 -107
- package/lib/dist/lib/src/http/middleware/request/cors.middleware.d.ts +0 -9
- package/lib/dist/lib/src/http/middleware/request/cors.middleware.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/request/cors.middleware.js +0 -15
- package/lib/dist/lib/src/http/middleware/request/createContext.middleware.d.ts +0 -12
- package/lib/dist/lib/src/http/middleware/request/createContext.middleware.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/request/createContext.middleware.js +0 -26
- package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.d.ts +0 -12
- package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.js +0 -19
- package/lib/dist/lib/src/http/middleware/request/parse.middleware.d.ts +0 -13
- package/lib/dist/lib/src/http/middleware/request/parse.middleware.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/request/parse.middleware.js +0 -43
- package/lib/dist/lib/src/http/middleware/request.middleware.d.ts +0 -69
- package/lib/dist/lib/src/http/middleware/request.middleware.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/request.middleware.js +0 -210
- package/lib/dist/lib/src/http/middleware/response/parse.middleware.d.ts +0 -27
- package/lib/dist/lib/src/http/middleware/response/parse.middleware.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/response/parse.middleware.js +0 -52
- package/lib/dist/lib/src/http/middleware/response.middleware.d.ts +0 -27
- package/lib/dist/lib/src/http/middleware/response.middleware.d.ts.map +0 -1
- package/lib/dist/lib/src/http/middleware/response.middleware.js +0 -52
- package/lib/dist/lib/src/http/openApiV3Generator/index.d.ts +0 -2
- package/lib/dist/lib/src/http/openApiV3Generator/index.d.ts.map +0 -1
- package/lib/dist/lib/src/http/openApiV3Generator/index.js +0 -1
- package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts +0 -11
- package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts.map +0 -1
- package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.js +0 -167
- package/lib/dist/lib/src/http/router/expressLikeRouter.d.ts +0 -89
- package/lib/dist/lib/src/http/router/expressLikeRouter.d.ts.map +0 -1
- package/lib/dist/lib/src/http/router/expressLikeRouter.js +0 -322
- package/lib/dist/lib/src/http/types/apiDefinition.types.d.ts +0 -2
- package/lib/dist/lib/src/http/types/apiDefinition.types.d.ts.map +0 -1
- package/lib/dist/lib/src/http/types/apiDefinition.types.js +0 -1
- package/lib/dist/lib/src/http/types/contractDetails.types.d.ts +0 -2
- package/lib/dist/lib/src/http/types/contractDetails.types.d.ts.map +0 -1
- package/lib/dist/lib/src/http/types/contractDetails.types.js +0 -1
- package/lib/dist/lib/src/http/types/index.d.ts +0 -4
- package/lib/dist/lib/src/http/types/index.d.ts.map +0 -1
- package/lib/dist/lib/src/http/types/index.js +0 -3
- package/lib/dist/lib/src/http/types/router.types.d.ts +0 -2
- package/lib/dist/lib/src/http/types/router.types.d.ts.map +0 -1
- package/lib/dist/lib/src/http/types/router.types.js +0 -1
- package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.d.ts +0 -28
- package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.d.ts.map +0 -1
- package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.js +0 -50
- package/lib/dist/lib/src/http/utils/httpStatusCodes.d.ts +0 -986
- package/lib/dist/lib/src/http/utils/httpStatusCodes.d.ts.map +0 -1
- package/lib/dist/lib/src/http/utils/httpStatusCodes.js +0 -1039
- package/lib/dist/lib/src/http/utils/index.d.ts +0 -3
- package/lib/dist/lib/src/http/utils/index.d.ts.map +0 -1
- package/lib/dist/lib/src/http/utils/index.js +0 -2
- package/lib/dist/lib/src/services/index.d.ts +0 -2
- package/lib/dist/lib/src/services/index.d.ts.map +0 -1
- package/lib/dist/lib/src/services/index.js +0 -1
- package/lib/dist/lib/src/services/interfaces/baseService.d.ts +0 -2
- package/lib/dist/lib/src/services/interfaces/baseService.d.ts.map +0 -1
- package/lib/dist/lib/src/services/interfaces/baseService.js +0 -1
- package/lib/dist/lib/tests/dtoMapper.test.d.ts +0 -2
- package/lib/dist/lib/tests/dtoMapper.test.d.ts.map +0 -1
- package/lib/dist/lib/tests/dtoMapper.test.js +0 -172
- package/lib/dist/lib/tests/entityMapper.test.d.ts +0 -2
- package/lib/dist/lib/tests/entityMapper.test.d.ts.map +0 -1
- package/lib/dist/lib/tests/entityMapper.test.js +0 -172
- package/lib/dist/lib/tests/expressLikeRouter.test.d.ts +0 -2
- package/lib/dist/lib/tests/expressLikeRouter.test.d.ts.map +0 -1
- package/lib/dist/lib/tests/expressLikeRouter.test.js +0 -3
- package/lib/dist/lib/tests/http.middleware.test.d.ts +0 -2
- package/lib/dist/lib/tests/http.middleware.test.d.ts.map +0 -1
- package/lib/dist/lib/tests/http.middleware.test.js +0 -95
- package/lib/dist/lib/tests/openApiV3Generator.test.d.ts +0 -2
- package/lib/dist/lib/tests/openApiV3Generator.test.d.ts.map +0 -1
- package/lib/dist/lib/tests/openApiV3Generator.test.js +0 -66
- package/lib/dist/lib/tests/redisTtlCache.test.d.ts +0 -2
- package/lib/dist/lib/tests/redisTtlCache.test.d.ts.map +0 -1
- package/lib/dist/lib/tests/redisTtlCache.test.js +0 -49
- package/lib/dist/lib/tests/typedHandler.test.d.ts +0 -2
- package/lib/dist/lib/tests/typedHandler.test.d.ts.map +0 -1
- package/lib/dist/lib/tests/typedHandler.test.js +0 -3
- package/lib/dist/lib/vitest.config.d.ts +0 -3
- package/lib/dist/lib/vitest.config.d.ts.map +0 -1
- package/lib/dist/lib/vitest.config.js +0 -7
- package/lib/dist/services/index.d.ts +0 -2
- package/lib/dist/services/index.d.ts.map +0 -1
- package/lib/dist/services/index.js +0 -1
- package/lib/dist/services/interfaces/baseService.d.ts +0 -2
- package/lib/dist/services/interfaces/baseService.d.ts.map +0 -1
- package/lib/dist/services/interfaces/baseService.js +0 -1
- package/lib/dist/tests/entityMapper.test.d.ts +0 -2
- package/lib/dist/tests/entityMapper.test.d.ts.map +0 -1
- package/lib/dist/tests/entityMapper.test.js +0 -171
- package/lib/dist/tests/http.middleware.test.d.ts +0 -2
- package/lib/dist/tests/http.middleware.test.d.ts.map +0 -1
- package/lib/dist/tests/http.middleware.test.js +0 -93
- package/lib/dist/tests/openApiV3Generator.test.d.ts +0 -2
- package/lib/dist/tests/openApiV3Generator.test.d.ts.map +0 -1
- package/lib/dist/tests/openApiV3Generator.test.js +0 -66
- package/lib/dist/tests/redisTtlCache.test.d.ts +0 -2
- package/lib/dist/tests/redisTtlCache.test.d.ts.map +0 -1
- package/lib/dist/tests/redisTtlCache.test.js +0 -49
- package/lib/index.d.ts +0 -7
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -7
- package/lib/src/domainMapper/index.d.ts +0 -3
- package/lib/src/domainMapper/index.d.ts.map +0 -1
- package/lib/src/domainMapper/index.js +0 -2
- package/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts +0 -18
- package/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts.map +0 -1
- package/lib/src/domainMapper/interfaces/dtoMapper.interface.js +0 -1
- package/lib/src/domainMapper/models/baseDtoMapper.model.d.ts +0 -72
- package/lib/src/domainMapper/models/baseDtoMapper.model.d.ts.map +0 -1
- package/lib/src/domainMapper/models/baseDtoMapper.model.js +0 -75
- package/lib/src/domainMapper/models/requestDtoMapper.model.d.ts +0 -68
- package/lib/src/domainMapper/models/requestDtoMapper.model.d.ts.map +0 -1
- package/lib/src/domainMapper/models/requestDtoMapper.model.js +0 -70
- package/lib/src/domainMapper/models/responseDtoMapper.model.d.ts +0 -67
- package/lib/src/domainMapper/models/responseDtoMapper.model.d.ts.map +0 -1
- package/lib/src/domainMapper/models/responseDtoMapper.model.js +0 -65
- package/lib/src/domainMapper/types/dtoMapper.types.d.ts +0 -9
- package/lib/src/domainMapper/types/dtoMapper.types.d.ts.map +0 -1
- package/lib/src/domainMapper/types/dtoMapper.types.js +0 -1
- package/lib/src/http/handler/typedHandler.d.ts +0 -24
- package/lib/src/http/handler/typedHandler.d.ts.map +0 -1
- package/lib/src/http/handler/typedHandler.js +0 -25
- package/lib/src/http/interfaces/expressLikeApplication.interface.d.ts +0 -16
- package/lib/src/http/interfaces/expressLikeApplication.interface.d.ts.map +0 -1
- package/lib/src/http/interfaces/expressLikeApplication.interface.js +0 -14
- package/lib/src/http/interfaces/index.d.ts +0 -3
- package/lib/src/http/interfaces/index.d.ts.map +0 -1
- package/lib/src/http/interfaces/index.js +0 -2
- package/lib/src/http/middleware/index.d.ts +0 -3
- package/lib/src/http/middleware/index.d.ts.map +0 -1
- package/lib/src/http/middleware/index.js +0 -2
- package/lib/src/http/middleware/request.middleware.d.ts +0 -73
- package/lib/src/http/middleware/request.middleware.d.ts.map +0 -1
- package/lib/src/http/middleware/request.middleware.js +0 -210
- package/lib/src/http/middleware/response.middleware.d.ts +0 -31
- package/lib/src/http/middleware/response.middleware.d.ts.map +0 -1
- package/lib/src/http/middleware/response.middleware.js +0 -52
- package/lib/src/http/openApiV3Generator/index.d.ts +0 -2
- package/lib/src/http/openApiV3Generator/index.d.ts.map +0 -1
- package/lib/src/http/openApiV3Generator/index.js +0 -1
- package/lib/src/http/types/index.d.ts +0 -4
- package/lib/src/http/types/index.d.ts.map +0 -1
- package/lib/src/http/types/index.js +0 -3
- package/lib/src/http/utils/index.d.ts +0 -3
- package/lib/src/http/utils/index.d.ts.map +0 -1
- package/lib/src/http/utils/index.js +0 -2
- package/lib/tests/entityMapper.test.d.ts +0 -2
- package/lib/tests/entityMapper.test.d.ts.map +0 -1
- package/lib/tests/entityMapper.test.js +0 -168
- package/lib/tests/expressLikeRouter.test.d.ts +0 -2
- package/lib/tests/expressLikeRouter.test.d.ts.map +0 -1
- package/lib/tests/expressLikeRouter.test.js +0 -3
- /package/lib/{dist/cache/interfaces/ttlCache.interface.js → src/http/types/typedHandler.types.js} +0 -0
package/lib/jest.config.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,oBAiBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/lib/jest.config.js
CHANGED
@@ -0,0 +1,4 @@
|
|
1
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
2
|
+
import { ForklaunchRouter } from '../types/router.types';
|
3
|
+
export declare function isForklaunchRouter<SV extends AnySchemaValidator>(maybeForklaunchRouter: unknown): maybeForklaunchRouter is ForklaunchRouter<SV>;
|
4
|
+
//# sourceMappingURL=isForklaunchRouter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"isForklaunchRouter.d.ts","sourceRoot":"","sources":["../../../../src/http/guards/isForklaunchRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,kBAAkB,EAC9D,qBAAqB,EAAE,OAAO,GAC7B,qBAAqB,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAQ/C"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
export function isForklaunchRouter(maybeForklaunchRouter) {
|
2
|
+
return (maybeForklaunchRouter != null &&
|
3
|
+
typeof maybeForklaunchRouter === 'object' &&
|
4
|
+
'basePath' in maybeForklaunchRouter &&
|
5
|
+
'routes' in maybeForklaunchRouter &&
|
6
|
+
Array.isArray(maybeForklaunchRouter.routes));
|
7
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { AnySchemaValidator } from '@forklaunch/validator';
|
2
|
-
import { TypedHandler } from '../handlers/typedHandler';
|
3
2
|
import { Body, HeadersObject, Method, ParamsObject, QueryObject, ResponsesObject } from '../types/contractDetails.types';
|
3
|
+
import { TypedHandler } from '../types/typedHandler.types';
|
4
4
|
export declare function isTypedHandler<SV extends AnySchemaValidator, ContractMethod extends Method, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(maybeTypedHandler: unknown): maybeTypedHandler is TypedHandler<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>;
|
5
5
|
//# sourceMappingURL=isTypedHandler.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"isTypedHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/guards/isTypedHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"isTypedHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/guards/isTypedHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EACL,IAAI,EACJ,aAAa,EACb,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,wBAAgB,cAAc,CAC5B,EAAE,SAAS,kBAAkB,EAC7B,cAAc,SAAS,MAAM,EAC7B,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEzC,iBAAiB,EAAE,OAAO,GACzB,iBAAiB,IAAI,YAAY,CAClC,EAAE,EACF,cAAc,EACd,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,CACV,CAOA"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
2
|
+
import { ExpressLikeSchemaAuthMapper } from '../types/apiDefinition.types';
|
3
|
+
import { Body, ContractDetails, HeadersObject, Method, ParamsObject, QueryObject, ResponsesObject } from '../types/contractDetails.types';
|
4
|
+
export declare function typedAuthHandler<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>>(_schemaValidator: SV, _contractDetails: ContractDetails<SV, Method, `/${string}`, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>, authHandler: ExpressLikeSchemaAuthMapper<SV, P, ReqBody, ReqQuery, ReqHeaders>): ExpressLikeSchemaAuthMapper<SV, P, ReqBody, ReqQuery, ReqHeaders>;
|
5
|
+
//# sourceMappingURL=typedAuthHandler.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"typedAuthHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/typedAuthHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,IAAI,EACJ,eAAe,EACf,aAAa,EACb,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAExC,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,kBAAkB,EAC7B,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EAEpC,gBAAgB,EAAE,EAAE,EACpB,gBAAgB,EAAE,eAAe,CAC/B,EAAE,EACF,MAAM,EACN,IAAI,MAAM,EAAE,EACZ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,CACX,EACD,WAAW,EAAE,2BAA2B,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,qEAG/E"}
|
@@ -1,12 +1,6 @@
|
|
1
1
|
import { AnySchemaValidator } from '@forklaunch/validator';
|
2
2
|
import { ExpressLikeSchemaHandler } from '../types/apiDefinition.types';
|
3
3
|
import { Body, ContractDetails, HeadersObject, Method, ParamsObject, QueryObject, ResponsesObject } from '../types/contractDetails.types';
|
4
|
-
export type ContractDetailsExpressLikeSchemaHandler<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>> = ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>;
|
5
|
-
export type TypedHandler<SV extends AnySchemaValidator, ContractMethod extends Method, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>> = {
|
6
|
-
_typedHandler: true;
|
7
|
-
contractDetails: ContractDetails<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>;
|
8
|
-
handlers: ContractDetailsExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>[];
|
9
|
-
};
|
10
4
|
/**
|
11
5
|
* Router class that sets up routes and middleware for an Express router, for use with controller/routes pattern.
|
12
6
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typedHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/typedHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,IAAI,EACJ,eAAe,EACf,aAAa,EACb,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,gCAAgC,CAAC;
|
1
|
+
{"version":3,"file":"typedHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/typedHandler.ts"],"names":[],"mappings":"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"}
|
package/lib/src/http/index.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
export * from './application/expressLikeApplication';
|
2
|
+
export * from './guards/isForklaunchRouter';
|
2
3
|
export * from './handlers/typedHandler';
|
3
4
|
export * from './interfaces/expressLikeRouter.interface';
|
4
5
|
export * from './openApiV3Generator/openApiV3Generator';
|
@@ -7,6 +8,7 @@ export * from './types/apiDefinition.types';
|
|
7
8
|
export * from './types/contractDetails.types';
|
8
9
|
export * from './types/expressLikeRouter.types';
|
9
10
|
export * from './types/router.types';
|
11
|
+
export * from './types/typedHandler.types';
|
10
12
|
export * from './utils/enrichExpressLikeSend';
|
11
13
|
export * from './utils/httpStatusCodes';
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
|
package/lib/src/http/index.js
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
export * from './application/expressLikeApplication';
|
2
|
+
export * from './guards/isForklaunchRouter';
|
2
3
|
export * from './handlers/typedHandler';
|
3
4
|
export * from './interfaces/expressLikeRouter.interface';
|
4
5
|
export * from './openApiV3Generator/openApiV3Generator';
|
@@ -7,5 +8,6 @@ export * from './types/apiDefinition.types';
|
|
7
8
|
export * from './types/contractDetails.types';
|
8
9
|
export * from './types/expressLikeRouter.types';
|
9
10
|
export * from './types/router.types';
|
11
|
+
export * from './types/typedHandler.types';
|
10
12
|
export * from './utils/enrichExpressLikeSend';
|
11
13
|
export * from './utils/httpStatusCodes';
|
@@ -1,21 +1,6 @@
|
|
1
1
|
import { AnySchemaValidator } from '@forklaunch/validator';
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import { ParamsDictionary } from '../../types/contractDetails.types';
|
5
|
-
/**
|
6
|
-
* Maps roles from authorization.
|
7
|
-
*
|
8
|
-
* @param {AuthMethod} [authorizationType] - The method of authorization.
|
9
|
-
* @param {string} [authorizationToken] - The authorization token.
|
10
|
-
* @returns {string[]} - The mapped roles.
|
11
|
-
*/
|
12
|
-
/**
|
13
|
-
* Maps permissions from authorization.
|
14
|
-
*
|
15
|
-
* @param {AuthMethod} [authorizationType] - The method of authorization.
|
16
|
-
* @param {string} [authorizationToken] - The authorization token.
|
17
|
-
* @returns {string[]} - The mapped permissions.
|
18
|
-
*/
|
2
|
+
import { ForklaunchNextFunction, ForklaunchRequest, ForklaunchResponse, MapParamsSchema, MapReqBodySchema, MapReqHeadersSchema, MapReqQuerySchema, MapResBodyMapSchema, MapResHeadersSchema } from '../../types/apiDefinition.types';
|
3
|
+
import { Body, HeadersObject, ParamsObject, QueryObject, ResponsesObject } from '../../types/contractDetails.types';
|
19
4
|
/**
|
20
5
|
* Middleware to parse request authorization.
|
21
6
|
*
|
@@ -27,5 +12,5 @@ import { ParamsDictionary } from '../../types/contractDetails.types';
|
|
27
12
|
* @param {Response} res - The response object.
|
28
13
|
* @param {NextFunction} [next] - The next middleware function.
|
29
14
|
*/
|
30
|
-
export declare function parseRequestAuth<SV extends AnySchemaValidator, P extends
|
15
|
+
export declare function parseRequestAuth<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(req: ForklaunchRequest<SV, MapParamsSchema<SV, P>, MapReqBodySchema<SV, ReqBody>, MapReqQuerySchema<SV, ReqQuery>, MapReqHeadersSchema<SV, ReqHeaders>>, res: ForklaunchResponse<MapResBodyMapSchema<SV, ResBodyMap>, MapResHeadersSchema<SV, ResHeaders>, LocalsObj>, next?: ForklaunchNextFunction): Promise<void>;
|
31
16
|
//# sourceMappingURL=auth.middleware.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"auth.middleware.d.ts","sourceRoot":"","sources":["../../../../../src/http/middleware/request/auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"auth.middleware.d.ts","sourceRoot":"","sources":["../../../../../src/http/middleware/request/auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,IAAI,EACJ,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,mCAAmC,CAAC;AA4K3C;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,SAAS,kBAAkB,EAC7B,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEzC,GAAG,EAAE,iBAAiB,CACpB,EAAE,EACF,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EACtB,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,EAC7B,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAC/B,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,CACpC,EACD,GAAG,EAAE,kBAAkB,CACrB,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,EACnC,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,EACnC,SAAS,CACV,EACD,IAAI,CAAC,EAAE,sBAAsB,iBA0B9B"}
|
@@ -1,59 +1,122 @@
|
|
1
|
-
import
|
1
|
+
import jose from 'jose';
|
2
|
+
const invalidAuthorizationTokenFormat = [
|
3
|
+
401,
|
4
|
+
'Invalid Authorization token format.'
|
5
|
+
];
|
6
|
+
const invalidAuthorizationSubject = [
|
7
|
+
403,
|
8
|
+
'Invalid Authorization subject.'
|
9
|
+
];
|
10
|
+
const invalidAuthorizationTokenPermissions = [
|
11
|
+
403,
|
12
|
+
'Invalid Authorization permissions.'
|
13
|
+
];
|
14
|
+
const invalidAuthorizationTokenRoles = [
|
15
|
+
403,
|
16
|
+
'Invalid Authorization roles.'
|
17
|
+
];
|
18
|
+
const invalidAuthorizationToken = [
|
19
|
+
403,
|
20
|
+
'Invalid Authorization token.'
|
21
|
+
];
|
22
|
+
const invalidAuthorizationLogin = [
|
23
|
+
403,
|
24
|
+
'Invalid Authorization login.'
|
25
|
+
];
|
2
26
|
/**
|
3
27
|
* Checks the authorization token for validity.
|
4
28
|
*
|
5
29
|
* @param {AuthMethod} [authorizationMethod] - The method of authorization.
|
6
|
-
* @param {string} [
|
30
|
+
* @param {string} [authorizationToken] - The authorization string.
|
7
31
|
* @returns {Promise<[401 | 403, string] | string | undefined>} - The result of the authorization check.
|
8
32
|
*/
|
9
|
-
async function checkAuthorizationToken(authorizationMethod,
|
10
|
-
if (
|
33
|
+
async function checkAuthorizationToken(authorizationMethod, authorizationToken, req) {
|
34
|
+
if (authorizationToken == null) {
|
11
35
|
return [401, 'No Authorization token provided.'];
|
12
36
|
}
|
13
|
-
|
37
|
+
const [tokenPrefix, token] = authorizationToken.split(' ');
|
38
|
+
let resourceId;
|
39
|
+
switch (authorizationMethod.method) {
|
14
40
|
case 'jwt': {
|
15
|
-
if (
|
16
|
-
return
|
41
|
+
if (tokenPrefix !== 'Bearer') {
|
42
|
+
return invalidAuthorizationTokenFormat;
|
17
43
|
}
|
18
44
|
try {
|
19
|
-
const decodedJwt = await jose.jwtVerify(
|
20
|
-
|
45
|
+
const decodedJwt = await jose.jwtVerify(token, new TextEncoder().encode(
|
46
|
+
// TODO: Check this at application startup if there is any route with jwt checking
|
47
|
+
process.env.JWT_SECRET));
|
48
|
+
if (!decodedJwt.payload.sub) {
|
49
|
+
return invalidAuthorizationSubject;
|
50
|
+
}
|
51
|
+
resourceId = decodedJwt.payload.sub;
|
21
52
|
}
|
22
53
|
catch (error) {
|
54
|
+
// TODO: Log error
|
23
55
|
console.error(error);
|
24
|
-
return
|
56
|
+
return invalidAuthorizationToken;
|
57
|
+
}
|
58
|
+
break;
|
59
|
+
}
|
60
|
+
case 'basic': {
|
61
|
+
if (authorizationToken !== 'Basic') {
|
62
|
+
return invalidAuthorizationTokenFormat;
|
63
|
+
}
|
64
|
+
const [username, password] = Buffer.from(token, 'base64')
|
65
|
+
.toString('utf-8')
|
66
|
+
.split(':');
|
67
|
+
if (!username || !password) {
|
68
|
+
return invalidAuthorizationTokenFormat;
|
69
|
+
}
|
70
|
+
if (!authorizationMethod.login(username, password)) {
|
71
|
+
return invalidAuthorizationLogin;
|
72
|
+
}
|
73
|
+
resourceId = username;
|
74
|
+
break;
|
75
|
+
}
|
76
|
+
case 'other':
|
77
|
+
if (tokenPrefix !== authorizationMethod.tokenPrefix) {
|
78
|
+
return invalidAuthorizationTokenFormat;
|
79
|
+
}
|
80
|
+
resourceId = authorizationMethod.decodeResource(token);
|
81
|
+
break;
|
82
|
+
}
|
83
|
+
if (authorizationMethod.allowedPermissions ||
|
84
|
+
authorizationMethod.forbiddenPermissions) {
|
85
|
+
if (!authorizationMethod.mapPermissions) {
|
86
|
+
return [500, 'No permission mapping function provided.'];
|
87
|
+
}
|
88
|
+
const resourcePermissions = await authorizationMethod.mapPermissions(resourceId, req);
|
89
|
+
if (authorizationMethod.allowedPermissions) {
|
90
|
+
if (resourcePermissions.intersection(authorizationMethod.allowedPermissions)
|
91
|
+
.size === 0) {
|
92
|
+
return invalidAuthorizationTokenPermissions;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
if (authorizationMethod.forbiddenPermissions) {
|
96
|
+
if (resourcePermissions.intersection(authorizationMethod.forbiddenPermissions).size !== 0) {
|
97
|
+
return invalidAuthorizationTokenPermissions;
|
25
98
|
}
|
26
99
|
}
|
27
|
-
default:
|
28
|
-
return [401, 'Invalid Authorization method.'];
|
29
100
|
}
|
101
|
+
if (authorizationMethod.allowedRoles || authorizationMethod.forbiddenRoles) {
|
102
|
+
if (!authorizationMethod.mapRoles) {
|
103
|
+
return [500, 'No role mapping function provided.'];
|
104
|
+
}
|
105
|
+
const resourceRoles = await authorizationMethod.mapRoles(resourceId, req);
|
106
|
+
if (authorizationMethod.allowedRoles) {
|
107
|
+
if (resourceRoles.intersection(authorizationMethod.allowedRoles).size === 0) {
|
108
|
+
return invalidAuthorizationTokenRoles;
|
109
|
+
}
|
110
|
+
}
|
111
|
+
if (authorizationMethod.forbiddenRoles) {
|
112
|
+
if (resourceRoles.intersection(authorizationMethod.forbiddenRoles).size !==
|
113
|
+
0) {
|
114
|
+
return invalidAuthorizationTokenRoles;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
return [401, 'Invalid Authorization method.'];
|
30
119
|
}
|
31
|
-
/**
|
32
|
-
* Maps roles from authorization.
|
33
|
-
*
|
34
|
-
* @param {AuthMethod} [authorizationType] - The method of authorization.
|
35
|
-
* @param {string} [authorizationToken] - The authorization token.
|
36
|
-
* @returns {string[]} - The mapped roles.
|
37
|
-
*/
|
38
|
-
// function mapRoles(
|
39
|
-
// authorizationType?: AuthMethod,
|
40
|
-
// authorizationToken?: string
|
41
|
-
// ): string[] {
|
42
|
-
// return [];
|
43
|
-
// }
|
44
|
-
/**
|
45
|
-
* Maps permissions from authorization.
|
46
|
-
*
|
47
|
-
* @param {AuthMethod} [authorizationType] - The method of authorization.
|
48
|
-
* @param {string} [authorizationToken] - The authorization token.
|
49
|
-
* @returns {string[]} - The mapped permissions.
|
50
|
-
*/
|
51
|
-
// function mapPermissions(
|
52
|
-
// authorizationType?: AuthMethod,
|
53
|
-
// authorizationToken?: string
|
54
|
-
// ): string[] {
|
55
|
-
// return [];
|
56
|
-
// }
|
57
120
|
/**
|
58
121
|
* Middleware to parse request authorization.
|
59
122
|
*
|
@@ -68,40 +131,12 @@ async function checkAuthorizationToken(authorizationMethod, authorizationString)
|
|
68
131
|
export async function parseRequestAuth(req, res, next) {
|
69
132
|
const auth = req.contractDetails.auth;
|
70
133
|
if (auth) {
|
71
|
-
const errorAndMessage = await checkAuthorizationToken(auth
|
134
|
+
const errorAndMessage = await checkAuthorizationToken(auth, req.headers[(auth.method === 'other' ? auth.headerName : undefined) ??
|
135
|
+
'Authorization'], req);
|
72
136
|
if (Array.isArray(errorAndMessage)) {
|
73
137
|
res.status(errorAndMessage[0]).send(errorAndMessage[1]);
|
74
138
|
next?.(new Error(errorAndMessage[1]));
|
75
139
|
}
|
76
|
-
|
77
|
-
// const permissionSlugs = mapPermissions(
|
78
|
-
// auth.method,
|
79
|
-
// req.headers.authorization
|
80
|
-
// );
|
81
|
-
// const roles = mapRoles(auth.method, req.headers.authorization);
|
82
|
-
// const permissionErrorMessage =
|
83
|
-
// 'User does not have sufficient permissions to perform action.';
|
84
|
-
// const roleErrorMessage =
|
85
|
-
// 'User does not have correct role to perform action.';
|
86
|
-
// permissionSlugs.forEach((permissionSlug) => {
|
87
|
-
// if (
|
88
|
-
// !req.contractDetails.auth?.allowedSlugs?.has(permissionSlug) ||
|
89
|
-
// req.contractDetails.auth?.forbiddenSlugs?.has(permissionSlug)
|
90
|
-
// ) {
|
91
|
-
// res.status(403).send(permissionErrorMessage);
|
92
|
-
// next?.(new Error(permissionErrorMessage));
|
93
|
-
// }
|
94
|
-
// }
|
95
|
-
// });
|
96
|
-
// roles.forEach((role) => {
|
97
|
-
// if (
|
98
|
-
// !req.contractDetails.auth?.allowedRoles?.has(role) ||
|
99
|
-
// req.contractDetails.auth?.forbiddenRoles?.has(role)
|
100
|
-
// ) {
|
101
|
-
// res.status(403).send(roleErrorMessage);
|
102
|
-
// next?.(new Error(roleErrorMessage));
|
103
|
-
// }
|
104
|
-
// });
|
140
|
+
next?.();
|
105
141
|
}
|
106
|
-
// next?.();
|
107
142
|
}
|
@@ -155,7 +155,7 @@ export function generateSwaggerDocument(schemaValidator, port, routers) {
|
|
155
155
|
if (route.contractDetails.auth.method === 'jwt') {
|
156
156
|
pathItemObject.security = [
|
157
157
|
{
|
158
|
-
bearer: Array.from(route.contractDetails.auth.
|
158
|
+
bearer: Array.from(route.contractDetails.auth.allowedPermissions?.values() || [])
|
159
159
|
}
|
160
160
|
];
|
161
161
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"expressLikeRouter.d.ts","sourceRoot":"","sources":["../../../../src/http/router/expressLikeRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAmB,MAAM,uBAAuB,CAAC;AAM5E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,4BAA4B,EAC7B,MAAM,2CAA2C,CAAC;
|
1
|
+
{"version":3,"file":"expressLikeRouter.d.ts","sourceRoot":"","sources":["../../../../src/http/router/expressLikeRouter.ts"],"names":[],"mappings":"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"}
|
@@ -2,6 +2,7 @@ import { isExpressLikeSchemaHandler } from '../guards/isExpressLikeSchemaHandler
|
|
2
2
|
import { isHttpContractDetails } from '../guards/isHttpContractDetails';
|
3
3
|
import { isPathParamHttpContractDetails } from '../guards/isPathParamContractDetails';
|
4
4
|
import { isTypedHandler } from '../guards/isTypedHandler';
|
5
|
+
import { parseRequestAuth } from '../middleware/request/auth.middleware';
|
5
6
|
import { cors } from '../middleware/request/cors.middleware';
|
6
7
|
import { createContext } from '../middleware/request/createContext.middleware';
|
7
8
|
import { enrichDetails } from '../middleware/request/enrichDetails.middleware';
|
@@ -30,7 +31,8 @@ export class ForklaunchExpressLikeRouter {
|
|
30
31
|
#resolveMiddlewares(contractDetails, requestSchema, responseSchemas) {
|
31
32
|
return [
|
32
33
|
enrichDetails(contractDetails, requestSchema, responseSchemas),
|
33
|
-
parse
|
34
|
+
parse,
|
35
|
+
(parseRequestAuth)
|
34
36
|
];
|
35
37
|
}
|
36
38
|
/**
|
@@ -81,27 +83,6 @@ export class ForklaunchExpressLikeRouter {
|
|
81
83
|
}
|
82
84
|
return controllerHandler;
|
83
85
|
}
|
84
|
-
// TODO: Move to UniversalSDK
|
85
|
-
// /**
|
86
|
-
// * Extracts the SDK path from the given path.
|
87
|
-
// *
|
88
|
-
// * @param {string | RegExp | (string | RegExp)[]} path - The provided path.
|
89
|
-
// * @returns {string} - The extracted SDK path.
|
90
|
-
// * @throws {Error} - Throws an error if the path is not defined.
|
91
|
-
// */
|
92
|
-
// extractSdkPath(path: string | RegExp | (string | RegExp)[]): string {
|
93
|
-
// let sdkPath = path;
|
94
|
-
// if (Array.isArray(path)) {
|
95
|
-
// sdkPath = path.pop() || path[0];
|
96
|
-
// }
|
97
|
-
// if (!sdkPath) {
|
98
|
-
// throw new Error('Path is not defined');
|
99
|
-
// }
|
100
|
-
// if (sdkPath instanceof RegExp) {
|
101
|
-
// sdkPath = generateStringFromRegex(sdkPath);
|
102
|
-
// }
|
103
|
-
// return sdkPath as string;
|
104
|
-
// }
|
105
86
|
#compile(contractDetails) {
|
106
87
|
const schemaValidator = this.schemaValidator;
|
107
88
|
const requestSchema = schemaValidator.compile(schemaValidator.schemify({
|
@@ -227,7 +208,7 @@ export class ForklaunchExpressLikeRouter {
|
|
227
208
|
}
|
228
209
|
const contractDetails = contractDetailsOrMiddlewareOrTypedHandler;
|
229
210
|
const handlers = middlewareOrMiddlewareAndTypedHandler.filter((handler) => isExpressLikeSchemaHandler(handler));
|
230
|
-
if (!isHttpContractDetails(contractDetails)
|
211
|
+
if (!isHttpContractDetails(contractDetails) &&
|
231
212
|
!isPathParamHttpContractDetails(contractDetails)) {
|
232
213
|
throw new Error('Contract details are malformed for route definition');
|
233
214
|
}
|
@@ -11,6 +11,18 @@ export interface RequestContext {
|
|
11
11
|
/** Optional idempotency key for ensuring idempotent requests */
|
12
12
|
idempotencyKey?: string;
|
13
13
|
}
|
14
|
+
export interface ForklaunchBaseRequest<P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> {
|
15
|
+
/** Context of the request */
|
16
|
+
context: Prettify<RequestContext>;
|
17
|
+
/** Request parameters */
|
18
|
+
params: P;
|
19
|
+
/** Request headers */
|
20
|
+
headers: ReqHeaders;
|
21
|
+
/** Request body */
|
22
|
+
body: ReqBody;
|
23
|
+
/** Request query */
|
24
|
+
query: ReqQuery;
|
25
|
+
}
|
14
26
|
/**
|
15
27
|
* Interface representing a Forklaunch request.
|
16
28
|
*
|
@@ -20,21 +32,11 @@ export interface RequestContext {
|
|
20
32
|
* @template ReqQuery - A type for the request query, defaulting to ParsedQs.
|
21
33
|
* @template Headers - A type for the request headers, defaulting to IncomingHttpHeaders.
|
22
34
|
*/
|
23
|
-
export interface ForklaunchRequest<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> {
|
24
|
-
/** Context of the request */
|
25
|
-
context: Prettify<RequestContext>;
|
35
|
+
export interface ForklaunchRequest<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> extends ForklaunchBaseRequest<P, ReqBody, ReqQuery, ReqHeaders> {
|
26
36
|
/** Contract details for the request */
|
27
|
-
contractDetails:
|
37
|
+
contractDetails: PathParamHttpContractDetails<SV> | HttpContractDetails<SV>;
|
28
38
|
/** Schema validator */
|
29
39
|
schemaValidator: SchemaValidator;
|
30
|
-
/** Request parameters */
|
31
|
-
params: P;
|
32
|
-
/** Request headers */
|
33
|
-
headers: ReqHeaders;
|
34
|
-
/** Request body */
|
35
|
-
body: ReqBody;
|
36
|
-
/** Request query */
|
37
|
-
query: ReqQuery;
|
38
40
|
/** Method */
|
39
41
|
method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'CONNECT' | 'TRACE';
|
40
42
|
/** Request schema, compiled */
|
@@ -143,6 +145,12 @@ export type ForklaunchNextFunction = (err?: unknown) => void;
|
|
143
145
|
export interface ExpressLikeHandler<SV extends AnySchemaValidator, P extends ParamsDictionary, ResBodyMap extends Record<number, unknown>, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>, ResHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown>> {
|
144
146
|
(req: ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>, res: ForklaunchResponse<ResBodyMap, ResHeaders, LocalsObj>, next?: ForklaunchNextFunction): void | Promise<void>;
|
145
147
|
}
|
148
|
+
export type MapParamsSchema<SV extends AnySchemaValidator, P extends ParamsObject<SV>> = MapSchema<SV, P> extends infer Params ? unknown extends Params ? ParamsDictionary : Params : ParamsDictionary;
|
149
|
+
export type MapResBodyMapSchema<SV extends AnySchemaValidator, ResBodyMap extends ResponsesObject<SV>> = MapSchema<SV, ResBodyMap> extends infer ResponseBodyMap ? unknown extends ResponseBodyMap ? ForklaunchResErrors : ResponseBodyMap : ForklaunchResErrors;
|
150
|
+
export type MapReqBodySchema<SV extends AnySchemaValidator, ReqBody extends Body<SV>> = MapSchema<SV, ReqBody> extends infer Body ? unknown extends Body ? Record<string, unknown> : Body : Record<string, unknown>;
|
151
|
+
export type MapReqQuerySchema<SV extends AnySchemaValidator, ReqQuery extends QueryObject<SV>> = MapSchema<SV, ReqQuery> extends infer Query ? unknown extends Query ? ParsedQs : Query : ParsedQs;
|
152
|
+
export type MapReqHeadersSchema<SV extends AnySchemaValidator, ReqHeaders extends HeadersObject<SV>> = MapSchema<SV, ReqHeaders> extends infer RequestHeaders ? unknown extends RequestHeaders ? Record<string, string> : RequestHeaders : Record<string, string>;
|
153
|
+
export type MapResHeadersSchema<SV extends AnySchemaValidator, ResHeaders extends HeadersObject<SV>> = MapSchema<SV, ResHeaders> extends infer ResponseHeaders ? unknown extends ResponseHeaders ? ForklaunchResHeaders : ResponseHeaders : ForklaunchResHeaders;
|
146
154
|
/**
|
147
155
|
* Represents a schema middleware handler with typed parameters, responses, body, and query.
|
148
156
|
*
|
@@ -153,7 +161,22 @@ export interface ExpressLikeHandler<SV extends AnySchemaValidator, P extends Par
|
|
153
161
|
* @template ReqQuery - A type for the request query, defaulting to QueryObject.
|
154
162
|
* @template LocalsObj - A type for local variables, defaulting to an empty object.
|
155
163
|
*/
|
156
|
-
export type ExpressLikeSchemaHandler<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>> = ExpressLikeHandler<SV,
|
164
|
+
export type ExpressLikeSchemaHandler<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>> = ExpressLikeHandler<SV, MapParamsSchema<SV, P>, MapResBodyMapSchema<SV, ResBodyMap>, MapReqBodySchema<SV, ReqBody>, MapReqQuerySchema<SV, ReqQuery>, MapReqHeadersSchema<SV, ReqHeaders>, MapResHeadersSchema<SV, ResHeaders>, LocalsObj>;
|
165
|
+
/**
|
166
|
+
* Represents a function that maps an authenticated request with schema validation
|
167
|
+
* to a set of authorization strings, with request properties automatically inferred from the schema.
|
168
|
+
*
|
169
|
+
* @template SV - The type representing the schema validator.
|
170
|
+
* @template P - The type representing request parameters inferred from the schema.
|
171
|
+
* @template ReqBody - The type representing the request body inferred from the schema.
|
172
|
+
* @template ReqQuery - The type representing the request query parameters inferred from the schema.
|
173
|
+
* @template ReqHeaders - The type representing the request headers inferred from the schema.
|
174
|
+
*
|
175
|
+
* @param {ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>} req - The request object with schema validation.
|
176
|
+
* @returns {Set<string> | Promise<Set<string>>} - A set of authorization strings or a promise that resolves to it.
|
177
|
+
*/
|
178
|
+
export type ExpressLikeSchemaAuthMapper<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>> = ExpressLikeAuthMapper<SV, MapParamsSchema<SV, P>, MapReqBodySchema<SV, ReqBody>, MapReqQuerySchema<SV, ReqQuery>, MapReqHeadersSchema<SV, ReqHeaders>>;
|
179
|
+
export type ExpressLikeAuthMapper<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> = (sub: string, req?: ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>) => Set<string> | Promise<Set<string>>;
|
157
180
|
/**
|
158
181
|
* Represents a live type function for the SDK.
|
159
182
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"apiDefinition.types.d.ts","sourceRoot":"","sources":["../../../../src/http/types/apiDefinition.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EACL,IAAI,EACJ,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,4BAA4B,EAC5B,WAAW,EACX,sBAAsB,EACtB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED
|
1
|
+
{"version":3,"file":"apiDefinition.types.d.ts","sourceRoot":"","sources":["../../../../src/http/types/apiDefinition.types.ts"],"names":[],"mappings":"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"}
|