@forklaunch/core 1.5.1 → 1.5.3
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/cache/{index.d.mts → cacheKey.d.ts} +2 -6
- package/lib/cache/cacheKey.d.ts.map +1 -0
- package/lib/cache/index.d.ts +4 -15
- package/lib/cache/index.d.ts.map +1 -0
- package/lib/{ttlCache.interface-B3xaLT00.d.ts → cache/interfaces/ttlCache.interface.d.ts} +3 -5
- package/lib/cache/interfaces/ttlCache.interface.d.ts.map +1 -0
- package/lib/{ttlCacheRecord.types-oX0ti5SP.d.mts → cache/types/ttlCacheRecord.types.d.ts} +3 -4
- package/lib/cache/types/ttlCacheRecord.types.d.ts.map +1 -0
- package/lib/controllers/index.d.ts +2 -13
- package/lib/controllers/index.d.ts.map +1 -0
- package/lib/controllers/{index.d.mts → interfaces/controller.interface.d.ts} +2 -3
- package/lib/controllers/interfaces/controller.interface.d.ts.map +1 -0
- package/lib/environment/index.d.ts +2 -28
- package/lib/environment/index.d.ts.map +1 -0
- package/lib/environment/{index.d.mts → loadCascadingEnv.d.ts} +4 -5
- package/lib/environment/loadCascadingEnv.d.ts.map +1 -0
- package/lib/http/application/expressLikeApplication.d.ts +34 -0
- package/lib/http/application/expressLikeApplication.d.ts.map +1 -0
- package/lib/http/bootstrap/listen.d.ts +2 -0
- package/lib/http/bootstrap/listen.d.ts.map +1 -0
- package/lib/http/cluster/cluster.types.d.ts +17 -0
- package/lib/http/cluster/cluster.types.d.ts.map +1 -0
- package/lib/http/cluster/isPortBound.d.ts +2 -0
- package/lib/http/cluster/isPortBound.d.ts.map +1 -0
- package/lib/http/createHmacToken.d.ts +19 -0
- package/lib/http/createHmacToken.d.ts.map +1 -0
- package/lib/http/discriminateAuthMethod.d.ts +85 -0
- package/lib/http/discriminateAuthMethod.d.ts.map +1 -0
- package/lib/http/generateHmacAuthHeaders.d.ts +31 -0
- package/lib/http/generateHmacAuthHeaders.d.ts.map +1 -0
- package/lib/http/guards/hasFeatureChecks.d.ts +2 -0
- package/lib/http/guards/hasFeatureChecks.d.ts.map +1 -0
- package/lib/http/guards/hasPermissionChecks.d.ts +2 -0
- package/lib/http/guards/hasPermissionChecks.d.ts.map +1 -0
- package/lib/http/guards/hasRoleChecks.d.ts +2 -0
- package/lib/http/guards/hasRoleChecks.d.ts.map +1 -0
- package/lib/http/guards/hasScopeChecks.d.ts +2 -0
- package/lib/http/guards/hasScopeChecks.d.ts.map +1 -0
- package/lib/http/guards/hasSend.d.ts +17 -0
- package/lib/http/guards/hasSend.d.ts.map +1 -0
- package/lib/http/guards/hasSubscriptionChecks.d.ts +2 -0
- package/lib/http/guards/hasSubscriptionChecks.d.ts.map +1 -0
- package/lib/http/guards/hasVersionedSchema.d.ts +2 -0
- package/lib/http/guards/hasVersionedSchema.d.ts.map +1 -0
- package/lib/http/guards/isBasicAuthMethod.d.ts +3 -0
- package/lib/http/guards/isBasicAuthMethod.d.ts.map +1 -0
- package/lib/http/guards/isConstrainedForklaunchRouter.d.ts +21 -0
- package/lib/http/guards/isConstrainedForklaunchRouter.d.ts.map +1 -0
- package/lib/http/guards/isExpressLikeSchemaHandler.d.ts +32 -0
- package/lib/http/guards/isExpressLikeSchemaHandler.d.ts.map +1 -0
- package/lib/http/guards/isForklaunchExpressLikeRouter.d.ts +28 -0
- package/lib/http/guards/isForklaunchExpressLikeRouter.d.ts.map +1 -0
- package/lib/http/guards/isForklaunchRequest.d.ts +26 -0
- package/lib/http/guards/isForklaunchRequest.d.ts.map +1 -0
- package/lib/http/guards/isForklaunchResponse.d.ts +23 -0
- package/lib/http/guards/isForklaunchResponse.d.ts.map +1 -0
- package/lib/http/guards/isForklaunchRouter.d.ts +21 -0
- package/lib/http/guards/isForklaunchRouter.d.ts.map +1 -0
- package/lib/http/guards/isHmacMethod.d.ts +9 -0
- package/lib/http/guards/isHmacMethod.d.ts.map +1 -0
- package/lib/http/guards/isHttpContractDetails.d.ts +29 -0
- package/lib/http/guards/isHttpContractDetails.d.ts.map +1 -0
- package/lib/http/guards/isJwtAuthMethod.d.ts +3 -0
- package/lib/http/guards/isJwtAuthMethod.d.ts.map +1 -0
- package/lib/http/guards/isLoggerMeta.d.ts +3 -0
- package/lib/http/guards/isLoggerMeta.d.ts.map +1 -0
- package/lib/http/guards/isPath.d.ts +2 -0
- package/lib/http/guards/isPath.d.ts.map +1 -0
- package/lib/http/guards/isPathParamContractDetails.d.ts +4 -0
- package/lib/http/guards/isPathParamContractDetails.d.ts.map +1 -0
- package/lib/http/guards/isRequestShape.d.ts +3 -0
- package/lib/http/guards/isRequestShape.d.ts.map +1 -0
- package/lib/http/guards/isResponseCompiledSchema.d.ts +3 -0
- package/lib/http/guards/isResponseCompiledSchema.d.ts.map +1 -0
- package/lib/http/guards/isSdkHandler.d.ts +9 -0
- package/lib/http/guards/isSdkHandler.d.ts.map +1 -0
- package/lib/http/guards/isSdkRouter.d.ts +9 -0
- package/lib/http/guards/isSdkRouter.d.ts.map +1 -0
- package/lib/http/guards/isTypedHandler.d.ts +5 -0
- package/lib/http/guards/isTypedHandler.d.ts.map +1 -0
- package/lib/http/guards/isVersionedInputSchema.d.ts +3 -0
- package/lib/http/guards/isVersionedInputSchema.d.ts.map +1 -0
- package/lib/http/handlers/delete.d.ts +5 -0
- package/lib/http/handlers/delete.d.ts.map +1 -0
- package/lib/http/handlers/get.d.ts +5 -0
- package/lib/http/handlers/get.d.ts.map +1 -0
- package/lib/http/handlers/head.d.ts +5 -0
- package/lib/http/handlers/head.d.ts.map +1 -0
- package/lib/http/handlers/middleware.d.ts +10 -0
- package/lib/http/handlers/middleware.d.ts.map +1 -0
- package/lib/http/handlers/options.d.ts +5 -0
- package/lib/http/handlers/options.d.ts.map +1 -0
- package/lib/http/handlers/patch.d.ts +5 -0
- package/lib/http/handlers/patch.d.ts.map +1 -0
- package/lib/http/handlers/post.d.ts +5 -0
- package/lib/http/handlers/post.d.ts.map +1 -0
- package/lib/http/handlers/put.d.ts +5 -0
- package/lib/http/handlers/put.d.ts.map +1 -0
- package/lib/http/handlers/trace.d.ts +5 -0
- package/lib/http/handlers/trace.d.ts.map +1 -0
- package/lib/http/handlers/typedAuthHandler.d.ts +5 -0
- package/lib/http/handlers/typedAuthHandler.d.ts.map +1 -0
- package/lib/http/handlers/typedHandler.d.ts +14 -0
- package/lib/http/handlers/typedHandler.d.ts.map +1 -0
- package/lib/http/httpStatusCodes.d.ts +75 -0
- package/lib/http/httpStatusCodes.d.ts.map +1 -0
- package/lib/http/index.d.ts +47 -1244
- package/lib/http/index.d.ts.map +1 -0
- package/lib/http/index.js +445 -410
- package/lib/http/index.js.map +1 -1
- package/lib/http/index.mjs +439 -407
- package/lib/http/index.mjs.map +1 -1
- package/lib/http/interfaces/expressLikeRouter.interface.d.ts +25 -0
- package/lib/http/interfaces/expressLikeRouter.interface.d.ts.map +1 -0
- package/lib/http/mcpGenerator/mcpGenerator.d.ts +17 -0
- package/lib/http/mcpGenerator/mcpGenerator.d.ts.map +1 -0
- package/lib/http/middleware/request/auth.middleware.d.ts +16 -0
- package/lib/http/middleware/request/auth.middleware.d.ts.map +1 -0
- package/lib/http/middleware/request/cors.middleware.d.ts +13 -0
- package/lib/http/middleware/request/cors.middleware.d.ts.map +1 -0
- package/lib/http/middleware/request/createContext.middleware.d.ts +15 -0
- package/lib/http/middleware/request/createContext.middleware.d.ts.map +1 -0
- package/lib/http/middleware/request/enrichDetails.middleware.d.ts +18 -0
- package/lib/http/middleware/request/enrichDetails.middleware.d.ts.map +1 -0
- package/lib/http/middleware/request/parse.middleware.d.ts +17 -0
- package/lib/http/middleware/request/parse.middleware.d.ts.map +1 -0
- package/lib/http/middleware/request/tenantContext.middleware.d.ts +41 -0
- package/lib/http/middleware/request/tenantContext.middleware.d.ts.map +1 -0
- package/lib/http/middleware/response/enrichExpressLikeSend.middleware.d.ts +32 -0
- package/lib/http/middleware/response/enrichExpressLikeSend.middleware.d.ts.map +1 -0
- package/lib/http/middleware/response/parse.middleware.d.ts +31 -0
- package/lib/http/middleware/response/parse.middleware.d.ts.map +1 -0
- package/lib/http/openApiV3Generator/openApiV3Generator.d.ts +17 -0
- package/lib/http/openApiV3Generator/openApiV3Generator.d.ts.map +1 -0
- package/lib/http/rateLimit/index.d.ts +2 -0
- package/lib/http/rateLimit/index.d.ts.map +1 -0
- package/lib/http/rateLimit/rateLimiter.d.ts +66 -0
- package/lib/http/rateLimit/rateLimiter.d.ts.map +1 -0
- package/lib/http/router/discriminateBody.d.ts +43 -0
- package/lib/http/router/discriminateBody.d.ts.map +1 -0
- package/lib/http/router/expressLikeRouter.d.ts +240 -0
- package/lib/http/router/expressLikeRouter.d.ts.map +1 -0
- package/lib/http/router/routerSharedLogic.d.ts +50 -0
- package/lib/http/router/routerSharedLogic.d.ts.map +1 -0
- package/lib/http/router/unpackRouters.d.ts +7 -0
- package/lib/http/router/unpackRouters.d.ts.map +1 -0
- package/lib/http/telemetry/auditLogger.d.ts +21 -0
- package/lib/http/telemetry/auditLogger.d.ts.map +1 -0
- package/lib/http/telemetry/constants.d.ts +6 -0
- package/lib/http/telemetry/constants.d.ts.map +1 -0
- package/lib/http/telemetry/evaluateTelemetryOptions.d.ts +11 -0
- package/lib/http/telemetry/evaluateTelemetryOptions.d.ts.map +1 -0
- package/lib/http/telemetry/metricsDefinition.d.ts +3 -0
- package/lib/http/telemetry/metricsDefinition.d.ts.map +1 -0
- package/lib/http/telemetry/openTelemetryCollector.d.ts +53 -0
- package/lib/http/telemetry/openTelemetryCollector.d.ts.map +1 -0
- package/lib/http/telemetry/pinoLogger.d.ts +20 -0
- package/lib/http/telemetry/pinoLogger.d.ts.map +1 -0
- package/lib/http/telemetry/recordMetric.d.ts +5 -0
- package/lib/http/telemetry/recordMetric.d.ts.map +1 -0
- package/lib/http/types/apiDefinition.types.d.ts +471 -0
- package/lib/http/types/apiDefinition.types.d.ts.map +1 -0
- package/lib/http/types/contractDetails.types.d.ts +404 -0
- package/lib/http/types/contractDetails.types.d.ts.map +1 -0
- package/lib/http/types/docsConfiguration.types.d.ts +7 -0
- package/lib/http/types/docsConfiguration.types.d.ts.map +1 -0
- package/lib/http/types/expressLikeOptions.d.ts +224 -0
- package/lib/http/types/expressLikeOptions.d.ts.map +1 -0
- package/lib/http/types/expressLikeRouter.types.d.ts +127 -0
- package/lib/http/types/expressLikeRouter.types.d.ts.map +1 -0
- package/lib/http/types/openTelemetryCollector.types.d.ts +21 -0
- package/lib/http/types/openTelemetryCollector.types.d.ts.map +1 -0
- package/lib/http/types/router.types.d.ts +52 -0
- package/lib/http/types/router.types.d.ts.map +1 -0
- package/lib/http/types/sdk.types.d.ts +259 -0
- package/lib/http/types/sdk.types.d.ts.map +1 -0
- package/lib/http/types/typedHandler.types.d.ts +18 -0
- package/lib/http/types/typedHandler.types.d.ts.map +1 -0
- package/lib/mappers/guards/isSchemaResolutionFunction.d.ts +10 -0
- package/lib/mappers/guards/isSchemaResolutionFunction.d.ts.map +1 -0
- package/lib/mappers/index.d.ts +3 -68
- package/lib/mappers/index.d.ts.map +1 -0
- package/lib/mappers/mapServiceSchemas.d.ts +33 -0
- package/lib/mappers/mapServiceSchemas.d.ts.map +1 -0
- package/lib/mappers/mapper.d.ts +26 -0
- package/lib/mappers/mapper.d.ts.map +1 -0
- package/lib/mappers/types/schemaResolution.types.d.ts +9 -0
- package/lib/mappers/types/schemaResolution.types.d.ts.map +1 -0
- package/lib/objectstore/index.d.ts +3 -71
- package/lib/objectstore/index.d.ts.map +1 -0
- package/lib/objectstore/{index.d.mts → interfaces/objectstore.interface.d.ts} +3 -16
- package/lib/objectstore/interfaces/objectstore.interface.d.ts.map +1 -0
- package/lib/objectstore/objectstoreKey.d.ts +11 -0
- package/lib/objectstore/objectstoreKey.d.ts.map +1 -0
- package/lib/persistence/complianceEventSubscriber.d.ts +13 -0
- package/lib/persistence/complianceEventSubscriber.d.ts.map +1 -0
- package/lib/persistence/compliancePropertyBuilder.d.ts +26 -0
- package/lib/persistence/compliancePropertyBuilder.d.ts.map +1 -0
- package/lib/persistence/complianceTypes.d.ts +64 -0
- package/lib/persistence/complianceTypes.d.ts.map +1 -0
- package/lib/persistence/defineComplianceEntity.d.ts +19 -0
- package/lib/persistence/defineComplianceEntity.d.ts.map +1 -0
- package/lib/persistence/encryptedType.d.ts +85 -0
- package/lib/persistence/encryptedType.d.ts.map +1 -0
- package/lib/persistence/fieldEncryptor.d.ts +48 -0
- package/lib/persistence/fieldEncryptor.d.ts.map +1 -0
- package/lib/persistence/index.d.ts +10 -403
- package/lib/persistence/index.d.ts.map +1 -0
- package/lib/persistence/index.js.map +1 -1
- package/lib/persistence/index.mjs.map +1 -1
- package/lib/persistence/rls.d.ts +56 -0
- package/lib/persistence/rls.d.ts.map +1 -0
- package/lib/persistence/tenantEm.d.ts +60 -0
- package/lib/persistence/tenantEm.d.ts.map +1 -0
- package/lib/persistence/tenantFilter.d.ts +47 -0
- package/lib/persistence/tenantFilter.d.ts.map +1 -0
- package/lib/secrets/index.d.ts +2 -0
- package/lib/secrets/index.d.ts.map +1 -0
- package/lib/secrets/secretsAccessor.d.ts +17 -0
- package/lib/secrets/secretsAccessor.d.ts.map +1 -0
- package/lib/services/complianceDataService.d.ts +47 -0
- package/lib/services/complianceDataService.d.ts.map +1 -0
- package/lib/services/configInjector.d.ts +43 -0
- package/lib/services/configInjector.d.ts.map +1 -0
- package/lib/services/guards/isConstructed.d.ts +3 -0
- package/lib/services/guards/isConstructed.d.ts.map +1 -0
- package/lib/services/guards/isConstructedSingleton.d.ts +3 -0
- package/lib/services/guards/isConstructedSingleton.d.ts.map +1 -0
- package/lib/services/guards/isConstructor.d.ts +3 -0
- package/lib/services/guards/isConstructor.d.ts.map +1 -0
- package/lib/services/index.d.ts +10 -184
- package/lib/services/index.d.ts.map +1 -0
- package/lib/services/retentionService.d.ts +31 -0
- package/lib/services/retentionService.d.ts.map +1 -0
- package/lib/services/runRetentionEnforcement.d.ts +19 -0
- package/lib/services/runRetentionEnforcement.d.ts.map +1 -0
- package/lib/services/types/configInjector.types.d.ts +39 -0
- package/lib/services/types/configInjector.types.d.ts.map +1 -0
- package/lib/services/types/entityManager.types.d.ts +4 -0
- package/lib/services/types/entityManager.types.d.ts.map +1 -0
- package/lib/services/types/service.types.d.ts +5 -0
- package/lib/services/types/service.types.d.ts.map +1 -0
- package/lib/ws/asyncApiV3Generator/asyncApiV3Generator.d.ts +12 -0
- package/lib/ws/asyncApiV3Generator/asyncApiV3Generator.d.ts.map +1 -0
- package/lib/ws/index.d.ts +4 -67
- package/lib/ws/index.d.ts.map +1 -0
- package/lib/ws/index.js.map +1 -1
- package/lib/ws/index.mjs.map +1 -1
- package/lib/ws/types/eventSchema.types.d.ts +28 -0
- package/lib/ws/types/eventSchema.types.d.ts.map +1 -0
- package/lib/ws/webSocketLike.d.ts +18 -0
- package/lib/ws/webSocketLike.d.ts.map +1 -0
- package/package.json +47 -46
- package/LICENSE +0 -21
- package/lib/apiDefinition.types-DF_crhB0.d.mts +0 -1092
- package/lib/apiDefinition.types-DW4lfZqy.d.ts +0 -1092
- package/lib/http/index.d.mts +0 -1244
- package/lib/mappers/index.d.mts +0 -68
- package/lib/openTelemetryCollector-BS-ej09T.d.mts +0 -70
- package/lib/openTelemetryCollector-BS-ej09T.d.ts +0 -70
- package/lib/persistence/index.d.mts +0 -403
- package/lib/services/index.d.mts +0 -185
- package/lib/ttlCache.interface-CEOkrt8d.d.mts +0 -77
- package/lib/ttlCacheRecord.types-oX0ti5SP.d.ts +0 -25
- package/lib/ws/index.d.mts +0 -67
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
import { MakePropertyOptionalIfChildrenOptional, Prettify, SanitizePathSlashes } from '@forklaunch/common';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { Span } from '@opentelemetry/api';
|
|
4
|
+
import { JWTPayload } from 'jose';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
import { Readable } from 'stream';
|
|
7
|
+
import { OpenTelemetryCollector } from '../telemetry/openTelemetryCollector';
|
|
8
|
+
import { AuthMethodsBase, BasicAuthMethods, Body, FileBody, HeadersObject, HmacMethods, HttpContractDetails, JsonBody, MapSchema, Method, MultipartForm, ParamsDictionary, ParamsObject, PathParamHttpContractDetails, QueryObject, ResponseBody, ResponseCompiledSchema, ResponsesObject, ServerSentEventBody, SessionObject, TextBody, UnknownBody, UnknownResponseBody, UrlEncodedForm, VersionSchema } from './contractDetails.types';
|
|
9
|
+
import { ExpressLikeRouterOptions } from './expressLikeOptions';
|
|
10
|
+
import { MetricsDefinition } from './openTelemetryCollector.types';
|
|
11
|
+
/**
|
|
12
|
+
* Interface representing the context of a request.
|
|
13
|
+
*/
|
|
14
|
+
export interface RequestContext {
|
|
15
|
+
/** Correlation ID for tracking requests */
|
|
16
|
+
correlationId: string;
|
|
17
|
+
/** Optional idempotency key for ensuring idempotent requests */
|
|
18
|
+
idempotencyKey?: string;
|
|
19
|
+
/** Active OpenTelemetry Span */
|
|
20
|
+
span?: Span;
|
|
21
|
+
/** Wall-clock timestamp (ms) when the request context was created, used for duration metrics */
|
|
22
|
+
requestStartTime?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface ForklaunchBaseRequest<P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> {
|
|
25
|
+
/** Request parameters */
|
|
26
|
+
params: P;
|
|
27
|
+
/** Request headers */
|
|
28
|
+
headers: ReqHeaders;
|
|
29
|
+
/** Request body */
|
|
30
|
+
body: ReqBody;
|
|
31
|
+
/** Request query */
|
|
32
|
+
query: ReqQuery;
|
|
33
|
+
/** Method */
|
|
34
|
+
method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'CONNECT' | 'TRACE';
|
|
35
|
+
/** Request path */
|
|
36
|
+
path: string;
|
|
37
|
+
/** Original path */
|
|
38
|
+
originalPath: string;
|
|
39
|
+
/** OpenTelemetry Collector */
|
|
40
|
+
openTelemetryCollector?: OpenTelemetryCollector<MetricsDefinition>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Interface representing a Forklaunch request.
|
|
44
|
+
*
|
|
45
|
+
* @template SV - A type that extends AnySchemaValidator.
|
|
46
|
+
* @template P - A type for request parameters, defaulting to ParamsDictionary.
|
|
47
|
+
* @template ReqBody - A type for the request body, defaulting to unknown.
|
|
48
|
+
* @template ReqQuery - A type for the request query, defaulting to ParsedQs.
|
|
49
|
+
* @template Headers - A type for the request headers, defaulting to IncomingHttpHeaders.
|
|
50
|
+
*/
|
|
51
|
+
export interface ForklaunchRequest<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends Record<string, unknown>, ReqHeaders extends Record<string, unknown>, Version extends string, SessionSchema extends Record<string, unknown>> {
|
|
52
|
+
/** Context of the request */
|
|
53
|
+
context: Prettify<RequestContext>;
|
|
54
|
+
/** API Version of the request */
|
|
55
|
+
version: Version;
|
|
56
|
+
/** Request parameters */
|
|
57
|
+
params: P;
|
|
58
|
+
/** Request headers */
|
|
59
|
+
headers: ReqHeaders;
|
|
60
|
+
/** Request body */
|
|
61
|
+
body: ReqBody;
|
|
62
|
+
/** Request query */
|
|
63
|
+
query: ReqQuery;
|
|
64
|
+
/** Contract details for the request */
|
|
65
|
+
contractDetails: PathParamHttpContractDetails<SV> | HttpContractDetails<SV>;
|
|
66
|
+
/** Schema validator */
|
|
67
|
+
schemaValidator: SV;
|
|
68
|
+
/** Method */
|
|
69
|
+
method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'CONNECT' | 'TRACE';
|
|
70
|
+
/** Request path */
|
|
71
|
+
path: string;
|
|
72
|
+
/** Request schema, compiled */
|
|
73
|
+
requestSchema: unknown | Record<string, unknown>;
|
|
74
|
+
/** Original path */
|
|
75
|
+
originalPath: string;
|
|
76
|
+
/** OpenTelemetry Collector */
|
|
77
|
+
openTelemetryCollector?: OpenTelemetryCollector<MetricsDefinition>;
|
|
78
|
+
/** Session */
|
|
79
|
+
session: JWTPayload & SessionSchema;
|
|
80
|
+
/** Parsed versions */
|
|
81
|
+
_parsedVersions: string[] | number;
|
|
82
|
+
/** Raw body before schema validation (for HMAC verification) */
|
|
83
|
+
_rawBody?: unknown;
|
|
84
|
+
/** Global options */
|
|
85
|
+
_globalOptions: () => ExpressLikeRouterOptions<SV, SessionSchema> | undefined;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Represents the types of data that can be sent in a response.
|
|
89
|
+
*/
|
|
90
|
+
export type ForklaunchSendableData = Record<string, unknown> | string | Buffer | ArrayBuffer | NodeJS.ReadableStream | null | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Interface representing a Forklaunch response status.
|
|
93
|
+
* @template ResBody - A type for the response body.
|
|
94
|
+
*/
|
|
95
|
+
export interface ForklaunchStatusResponse<ResBody> {
|
|
96
|
+
/**
|
|
97
|
+
* Sends the response.
|
|
98
|
+
* @param {ResBodyMap} [body] - The response body.
|
|
99
|
+
* @param {boolean} [close_connection] - Whether to close the connection.
|
|
100
|
+
* @returns {T} - The sent response.
|
|
101
|
+
*/
|
|
102
|
+
send: {
|
|
103
|
+
(body?: ResBody extends AsyncGenerator<unknown> ? never : ResBody extends Blob ? Blob | File | Buffer | ArrayBuffer | NodeJS.ReadableStream : ResBody | null, close_connection?: boolean): boolean;
|
|
104
|
+
<U>(body?: ResBody extends AsyncGenerator<unknown> ? never : ResBody extends Blob ? Blob | File | Buffer | ArrayBuffer | NodeJS.ReadableStream : ResBody | null, close_connection?: boolean): U;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Sends a JSON response.
|
|
108
|
+
* @param {ResBodyMap} [body] - The response body.
|
|
109
|
+
* @returns {boolean|T} - The JSON response.
|
|
110
|
+
*/
|
|
111
|
+
json: {
|
|
112
|
+
(body: ResBody extends string | AsyncGenerator<unknown> ? never : ResBody | null): boolean;
|
|
113
|
+
<U>(body: ResBody extends string | AsyncGenerator<unknown> ? never : ResBody | null): U;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Sends a JSONP response.
|
|
117
|
+
* @param {ResBodyMap} [body] - The response body.
|
|
118
|
+
* @returns {boolean|T} - The JSONP response.
|
|
119
|
+
*/
|
|
120
|
+
jsonp: {
|
|
121
|
+
(body: ResBody extends string | AsyncGenerator<unknown> ? never : ResBody | null): boolean;
|
|
122
|
+
<U>(body: ResBody extends string | AsyncGenerator<unknown> ? never : ResBody | null): U;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Sends a Server-Sent Event (SSE) response.
|
|
126
|
+
* @param {ResBodyMap} [body] - The response body.
|
|
127
|
+
* @param {number} interval - The interval between events.
|
|
128
|
+
*/
|
|
129
|
+
sseEmitter: (generator: () => AsyncGenerator<ResBody extends AsyncGenerator<infer T> ? T : never, void, unknown>) => void;
|
|
130
|
+
}
|
|
131
|
+
type ToNumber<T extends string | number | symbol> = T extends number ? T : T extends `${infer N extends number}` ? N : never;
|
|
132
|
+
/**
|
|
133
|
+
* Interface representing a Forklaunch response.
|
|
134
|
+
*
|
|
135
|
+
* @template ResBodyMap - A type for the response body, defaulting to common status code responses.
|
|
136
|
+
* @template StatusCode - A type for the status code, defaulting to number.
|
|
137
|
+
*/
|
|
138
|
+
export interface ForklaunchResponse<BaseResponse, ResBodyMap extends Record<number, unknown>, ResHeaders extends Record<string, unknown>, LocalsObj extends Record<string, unknown>, Version extends string> {
|
|
139
|
+
/** Data of the response body */
|
|
140
|
+
bodyData: unknown;
|
|
141
|
+
/** Status code of the response */
|
|
142
|
+
statusCode: number;
|
|
143
|
+
/** Whether the response is finished */
|
|
144
|
+
headersSent: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Gets the headers of the response.
|
|
147
|
+
* @returns {Omit<ResHeaders, keyof ForklaunchResHeaders> & ForklaunchResHeaders} - The headers of the response.
|
|
148
|
+
*/
|
|
149
|
+
getHeaders: () => Omit<ResHeaders, keyof ForklaunchResHeaders> & ForklaunchResHeaders;
|
|
150
|
+
/**
|
|
151
|
+
* Gets a header for the response.
|
|
152
|
+
* @param {string} key - The header key.
|
|
153
|
+
* @returns {string | string[] | undefined} The header value.
|
|
154
|
+
*/
|
|
155
|
+
getHeader: (key: string) => string | string[] | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Sets a header for the response.
|
|
158
|
+
* @param {string} key - The header key.
|
|
159
|
+
* @param {string} value - The header value.
|
|
160
|
+
*/
|
|
161
|
+
setHeader: {
|
|
162
|
+
<K extends keyof (ResHeaders & ForklaunchResHeaders)>(key: K, value: K extends keyof ForklaunchResHeaders ? ForklaunchResHeaders[K] : ResHeaders[K]): void;
|
|
163
|
+
<K extends keyof (ResHeaders & ForklaunchResHeaders)>(key: K, value: K extends keyof ForklaunchResHeaders ? ForklaunchResHeaders[K] : ResHeaders[K]): BaseResponse;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Adds an event listener to the response.
|
|
167
|
+
* @param {string} event - The event to listen for.
|
|
168
|
+
* @param {Function} listener - The listener function.
|
|
169
|
+
*/
|
|
170
|
+
on(event: 'close', listener: () => void): BaseResponse & this;
|
|
171
|
+
on(event: 'drain', listener: () => void): BaseResponse & this;
|
|
172
|
+
on(event: 'error', listener: (err: Error) => void): BaseResponse & this;
|
|
173
|
+
on(event: 'finish', listener: () => void): BaseResponse & this;
|
|
174
|
+
on(event: 'pipe', listener: (src: Readable) => void): BaseResponse & this;
|
|
175
|
+
on(event: 'unpipe', listener: (src: Readable) => void): BaseResponse & this;
|
|
176
|
+
on(event: string | symbol, listener: (...args: unknown[]) => void): BaseResponse & this;
|
|
177
|
+
/**
|
|
178
|
+
* Sets the status of the response.
|
|
179
|
+
* @param {U} code - The status code.
|
|
180
|
+
* @param {string} [message] - Optional message.
|
|
181
|
+
* @returns {ForklaunchResponse<(ResBodyMap)[U], ResHeaders, U, LocalsObj>} - The response with the given status.
|
|
182
|
+
*/
|
|
183
|
+
status: {
|
|
184
|
+
<U extends ToNumber<keyof (ResBodyMap & ForklaunchResErrors)>>(code: U): Omit<BaseResponse, keyof ForklaunchStatusResponse<(Omit<ForklaunchResErrors, keyof ResBodyMap> & ResBodyMap)[U]>> & ForklaunchStatusResponse<(Omit<ForklaunchResErrors, keyof ResBodyMap> & ResBodyMap)[U]>;
|
|
185
|
+
<U extends ToNumber<keyof (ResBodyMap & ForklaunchResErrors)>>(code: U, message?: string): Omit<BaseResponse, keyof ForklaunchStatusResponse<(Omit<ForklaunchResErrors, keyof ResBodyMap> & ResBodyMap)[U]>> & ForklaunchStatusResponse<(Omit<ForklaunchResErrors, keyof ResBodyMap> & ResBodyMap)[U]>;
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Ends the response.
|
|
189
|
+
* @param {string} [data] - Optional data to send.
|
|
190
|
+
*/
|
|
191
|
+
end: {
|
|
192
|
+
(data?: string): void;
|
|
193
|
+
(cb?: (() => void) | undefined): BaseResponse;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Sets the content type of the response.
|
|
197
|
+
* @param {string} type - The content type.
|
|
198
|
+
*/
|
|
199
|
+
type: {
|
|
200
|
+
(type: string): void;
|
|
201
|
+
(type: string): BaseResponse;
|
|
202
|
+
};
|
|
203
|
+
/** Local variables */
|
|
204
|
+
locals: LocalsObj;
|
|
205
|
+
/** Cors */
|
|
206
|
+
cors: boolean;
|
|
207
|
+
/** Response schema, compiled */
|
|
208
|
+
responseSchemas: ResponseCompiledSchema | Record<string, ResponseCompiledSchema>;
|
|
209
|
+
/** Whether the metric has been recorded */
|
|
210
|
+
metricRecorded: boolean;
|
|
211
|
+
/** Whether the response has been sent */
|
|
212
|
+
sent: boolean;
|
|
213
|
+
/** Versioned responses */
|
|
214
|
+
version: Version;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Type representing the next function in a middleware.
|
|
218
|
+
* @param {unknown} [err] - Optional error parameter.
|
|
219
|
+
*/
|
|
220
|
+
export type ForklaunchNextFunction = (err?: unknown) => void;
|
|
221
|
+
export type VersionedRequests = Record<string, {
|
|
222
|
+
requestHeaders?: Record<string, unknown>;
|
|
223
|
+
body?: Record<string, unknown>;
|
|
224
|
+
query?: Record<string, unknown>;
|
|
225
|
+
}>;
|
|
226
|
+
type ResolvedForklaunchRequestBase<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends Record<string, unknown>, ReqHeaders extends Record<string, unknown>, Version extends string, SessionSchema extends Record<string, unknown>, BaseRequest> = unknown extends BaseRequest ? ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders, Version, SessionSchema> : Omit<BaseRequest, keyof ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders, Version, SessionSchema>> & ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders, Version, SessionSchema>;
|
|
227
|
+
/**
|
|
228
|
+
* Type representing the resolved forklaunch request from a base request type.
|
|
229
|
+
* @template SV - A type that extends AnySchemaValidator.
|
|
230
|
+
* @template P - A type for request parameters, defaulting to ParamsDictionary.
|
|
231
|
+
* @template ReqBody - A type for the request body, defaulting to Record<string, unknown>.
|
|
232
|
+
* @template ReqQuery - A type for the request query, defaulting to ParsedQs.
|
|
233
|
+
* @template ReqHeaders - A type for the request headers, defaulting to Record<string, unknown>.
|
|
234
|
+
* @template BaseRequest - A type for the base request.
|
|
235
|
+
*/
|
|
236
|
+
export type ResolvedForklaunchRequest<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends Record<string, unknown>, ReqHeaders extends Record<string, string>, VersionedReqs extends VersionedRequests, SessionSchema extends Record<string, unknown>, BaseRequest> = VersionedRequests extends VersionedReqs ? ResolvedForklaunchRequestBase<SV, P, ReqBody, ReqQuery, ReqHeaders, never, SessionSchema, BaseRequest> : {
|
|
237
|
+
[K in keyof VersionedReqs]: ResolvedForklaunchRequestBase<SV, P, VersionedReqs[K]['body'] extends Record<string, unknown> ? VersionedReqs[K]['body'] : Record<string, unknown>, VersionedReqs[K]['query'] extends Record<string, unknown> ? VersionedReqs[K]['query'] : ParsedQs, VersionedReqs[K]['requestHeaders'] extends Record<string, unknown> ? VersionedReqs[K]['requestHeaders'] : Record<string, string>, K extends string ? K : never, SessionSchema, BaseRequest>;
|
|
238
|
+
}[keyof VersionedReqs];
|
|
239
|
+
export type ResolvedForklaunchAuthRequest<P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>, BaseRequest> = unknown extends BaseRequest ? ForklaunchBaseRequest<P, ReqBody, ReqQuery, ReqHeaders> : {
|
|
240
|
+
[key in keyof BaseRequest]: key extends keyof ForklaunchBaseRequest<P, ReqBody, ReqQuery, ReqHeaders> ? ForklaunchBaseRequest<P, ReqBody, ReqQuery, ReqHeaders>[key] : key extends keyof BaseRequest ? BaseRequest[key] : never;
|
|
241
|
+
};
|
|
242
|
+
export type VersionedResponses = Record<string, {
|
|
243
|
+
responseHeaders?: Record<string, unknown>;
|
|
244
|
+
responses: Record<number, unknown>;
|
|
245
|
+
}>;
|
|
246
|
+
type ResolvedForklaunchResponseBase<ResBodyMap extends Record<number, unknown>, ResHeaders extends Record<string, unknown>, LocalsObj extends Record<string, unknown>, Version extends string, BaseResponse> = unknown extends BaseResponse ? ForklaunchResponse<BaseResponse, ResBodyMap, ResHeaders, LocalsObj, Version> : (string extends Version ? unknown : {
|
|
247
|
+
version?: Version;
|
|
248
|
+
}) & {
|
|
249
|
+
[K in keyof BaseResponse | keyof ForklaunchResponse<BaseResponse, ResBodyMap, ResHeaders, LocalsObj, Version>]: K extends keyof ForklaunchResponse<BaseResponse, ResBodyMap, ResHeaders, LocalsObj, Version> ? ForklaunchResponse<BaseResponse, ResBodyMap, ResHeaders, LocalsObj, Version>[K] : K extends keyof BaseResponse ? BaseResponse[K] : never;
|
|
250
|
+
};
|
|
251
|
+
export type ResolvedForklaunchResponse<ResBodyMap extends Record<number, unknown>, ResHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown>, VersionedResps extends VersionedResponses, BaseResponse> = VersionedResponses extends VersionedResps ? ResolvedForklaunchResponseBase<ResBodyMap, ResHeaders, LocalsObj, never, BaseResponse> : {
|
|
252
|
+
[K in keyof VersionedResps]: ResolvedForklaunchResponseBase<VersionedResps[K]['responses'], VersionedResps[K]['responseHeaders'] extends Record<string, unknown> ? VersionedResps[K]['responseHeaders'] : Record<string, string>, LocalsObj, K extends string ? K : never, BaseResponse>;
|
|
253
|
+
}[keyof VersionedResps];
|
|
254
|
+
/**
|
|
255
|
+
* Represents a middleware handler with schema validation.
|
|
256
|
+
*
|
|
257
|
+
* @template SV - A type that extends AnySchemaValidator.
|
|
258
|
+
* @template P - A type for request parameters, defaulting to ParamsDictionary.
|
|
259
|
+
* @template ResBodyMap - A type for the response body, defaulting to unknown.
|
|
260
|
+
* @template ReqBody - A type for the request body, defaulting to unknown.
|
|
261
|
+
* @template ReqQuery - A type for the request query, defaulting to ParsedQs.
|
|
262
|
+
* @template LocalsObj - A type for local variables, defaulting to an empty object.
|
|
263
|
+
* @template StatusCode - A type for the status code, defaulting to number.
|
|
264
|
+
*/
|
|
265
|
+
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>, VersionedReqs extends VersionedRequests, VersionedResps extends VersionedResponses, SessionSchema extends Record<string, unknown>, BaseRequest, BaseResponse, NextFunction> {
|
|
266
|
+
(req: ResolvedForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedReqs, SessionSchema, BaseRequest>, res: ResolvedForklaunchResponse<ResBodyMap, ResHeaders, LocalsObj, VersionedResps, BaseResponse>, next: NextFunction): unknown;
|
|
267
|
+
}
|
|
268
|
+
export type MapParamsSchema<SV extends AnySchemaValidator, P extends ParamsObject<SV>> = MapSchema<SV, P> extends infer Params ? unknown extends Params ? ParamsDictionary : Params : ParamsDictionary;
|
|
269
|
+
export type ExtractContentType<SV extends AnySchemaValidator, T extends ResponseBody<SV> | unknown> = T extends {
|
|
270
|
+
contentType: string;
|
|
271
|
+
} ? T['contentType'] : T extends JsonBody<SV> ? 'application/json' : T extends TextBody<SV> ? 'text/plain' : T extends FileBody<SV> ? 'application/octet-stream' : T extends ServerSentEventBody<SV> ? 'text/event-stream' : T extends UnknownResponseBody<SV> ? 'application/json' : T extends SV['file'] ? 'application/octet-stream' : 'text/plain';
|
|
272
|
+
export type ExtractResponseBody<SV extends AnySchemaValidator, T extends ResponseBody<SV> | unknown> = T extends JsonBody<SV> ? MapSchema<SV, T['json']> : T extends TextBody<SV> ? MapSchema<SV, T['text']> : T extends FileBody<SV> ? File | Blob : T extends ServerSentEventBody<SV> ? AsyncGenerator<MapSchema<SV, T['event']>> : T extends UnknownResponseBody<SV> ? MapSchema<SV, T['schema']> : MapSchema<SV, T>;
|
|
273
|
+
export type MapResBodyMapSchema<SV extends AnySchemaValidator, ResBodyMap extends ResponsesObject<SV>> = unknown extends ResBodyMap ? ForklaunchResErrors : {
|
|
274
|
+
[K in keyof ResBodyMap]: ExtractResponseBody<SV, ResBodyMap[K]>;
|
|
275
|
+
};
|
|
276
|
+
export type ExtractBody<SV extends AnySchemaValidator, T extends Body<SV>> = T extends JsonBody<SV> ? T['json'] : T extends TextBody<SV> ? T['text'] : T extends FileBody<SV> ? T['file'] : T extends MultipartForm<SV> ? T['multipartForm'] : T extends UrlEncodedForm<SV> ? T['urlEncodedForm'] : T extends UnknownBody<SV> ? T['schema'] : T;
|
|
277
|
+
export type MapReqBodySchema<SV extends AnySchemaValidator, ReqBody extends Body<SV>> = MapSchema<SV, ExtractBody<SV, ReqBody>> extends infer Body ? unknown extends Body ? Record<string, unknown> : Body : Record<string, unknown>;
|
|
278
|
+
export type MapReqQuerySchema<SV extends AnySchemaValidator, ReqQuery extends QueryObject<SV>> = MapSchema<SV, ReqQuery> extends infer Query ? unknown extends Query ? ParsedQs : Query : ParsedQs;
|
|
279
|
+
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>;
|
|
280
|
+
export type MapResHeadersSchema<SV extends AnySchemaValidator, ResHeaders extends HeadersObject<SV>> = MapSchema<SV, ResHeaders> extends infer ResponseHeaders ? unknown extends ResponseHeaders ? ForklaunchResHeaders : ResponseHeaders : ForklaunchResHeaders;
|
|
281
|
+
export type MapVersionedReqsSchema<SV extends AnySchemaValidator, VersionedReqs extends VersionSchema<SV, Method>> = {
|
|
282
|
+
[K in keyof VersionedReqs]: (VersionedReqs[K]['requestHeaders'] extends HeadersObject<SV> ? {
|
|
283
|
+
requestHeaders: MapReqHeadersSchema<SV, VersionedReqs[K]['requestHeaders']>;
|
|
284
|
+
} : unknown) & (VersionedReqs[K]['body'] extends Body<SV> ? {
|
|
285
|
+
body: MapReqBodySchema<SV, VersionedReqs[K]['body']>;
|
|
286
|
+
} : unknown) & (VersionedReqs[K]['query'] extends QueryObject<SV> ? {
|
|
287
|
+
query: MapReqQuerySchema<SV, VersionedReqs[K]['query']>;
|
|
288
|
+
} : unknown);
|
|
289
|
+
} extends infer MappedVersionedReqs ? MappedVersionedReqs extends VersionedRequests ? MappedVersionedReqs : VersionedRequests : VersionedRequests;
|
|
290
|
+
export type MapVersionedRespsSchema<SV extends AnySchemaValidator, VersionedResps extends VersionSchema<SV, Method>> = {
|
|
291
|
+
[K in keyof VersionedResps]: (VersionedResps[K]['responseHeaders'] extends HeadersObject<SV> ? {
|
|
292
|
+
responseHeaders: MapResHeadersSchema<SV, VersionedResps[K]['responseHeaders']>;
|
|
293
|
+
} : unknown) & (VersionedResps[K]['responses'] extends ResponsesObject<SV> ? {
|
|
294
|
+
responses: MapResBodyMapSchema<SV, VersionedResps[K]['responses']>;
|
|
295
|
+
} : unknown);
|
|
296
|
+
} extends infer MappedVersionedResps ? MappedVersionedResps extends VersionedResponses ? MappedVersionedResps : VersionedResponses : VersionedResponses;
|
|
297
|
+
export type MapSessionSchema<SV extends AnySchemaValidator, SessionSchema extends SessionObject<SV>> = SessionSchema extends infer UnmappedSessionSchema ? UnmappedSessionSchema extends SessionObject<SV> ? MapSchema<SV, UnmappedSessionSchema> : never : never;
|
|
298
|
+
/**
|
|
299
|
+
* Represents a schema middleware handler with typed parameters, responses, body, and query.
|
|
300
|
+
*
|
|
301
|
+
* @template SV - A type that extends AnySchemaValidator.
|
|
302
|
+
* @template P - A type for parameter schemas, defaulting to ParamsObject.
|
|
303
|
+
* @template ResBodyMap - A type for response schemas, defaulting to ResponsesObject.
|
|
304
|
+
* @template ReqBody - A type for the request body, defaulting to Body.
|
|
305
|
+
* @template ReqQuery - A type for the request query, defaulting to QueryObject.
|
|
306
|
+
* @template LocalsObj - A type for local variables, defaulting to an empty object.
|
|
307
|
+
*/
|
|
308
|
+
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>, VersionedApi extends VersionSchema<SV, Method>, SessionSchema extends Record<string, unknown>, BaseRequest, BaseResponse, NextFunction> = ExpressLikeHandler<SV, MapParamsSchema<SV, P>, MapResBodyMapSchema<SV, ResBodyMap>, MapReqBodySchema<SV, ReqBody>, MapReqQuerySchema<SV, ReqQuery>, MapReqHeadersSchema<SV, ReqHeaders>, MapResHeadersSchema<SV, ResHeaders>, LocalsObj, MapVersionedReqsSchema<SV, VersionedApi>, MapVersionedRespsSchema<SV, VersionedApi>, MapSessionSchema<SV, SessionSchema>, BaseRequest, BaseResponse, NextFunction>;
|
|
309
|
+
/**
|
|
310
|
+
* Represents a function that maps an authenticated request with schema validation
|
|
311
|
+
* to a set of authorization strings, with request properties automatically inferred from the schema.
|
|
312
|
+
*
|
|
313
|
+
* @template SV - The type representing the schema validator.
|
|
314
|
+
* @template P - The type representing request parameters inferred from the schema.
|
|
315
|
+
* @template ReqBody - The type representing the request body inferred from the schema.
|
|
316
|
+
* @template ReqQuery - The type representing the request query parameters inferred from the schema.
|
|
317
|
+
* @template ReqHeaders - The type representing the request headers inferred from the schema.
|
|
318
|
+
*
|
|
319
|
+
* @param {ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>} req - The request object with schema validation.
|
|
320
|
+
* @returns {Set<string> | Promise<Set<string>>} - A set of authorization strings or a promise that resolves to it.
|
|
321
|
+
*/
|
|
322
|
+
export type ExpressLikeSchemaAuthMapper<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, VersionedReqs extends VersionSchema<SV, Method>, SessionSchema extends SessionObject<SV>, BaseRequest> = ExpressLikeAuthMapper<SV, P extends infer UnmappedParams ? UnmappedParams extends ParamsObject<SV> ? MapParamsSchema<SV, UnmappedParams> : never : never, ReqBody extends infer UnmappedReqBody ? UnmappedReqBody extends Body<SV> ? MapReqBodySchema<SV, UnmappedReqBody> : never : never, ReqQuery extends infer UnmappedReqQuery ? UnmappedReqQuery extends QueryObject<SV> ? MapReqQuerySchema<SV, UnmappedReqQuery> : never : never, ReqHeaders extends infer UnmappedReqHeaders ? UnmappedReqHeaders extends HeadersObject<SV> ? MapReqHeadersSchema<SV, UnmappedReqHeaders> : never : never, VersionedReqs extends infer UnmappedVersionedReqs ? UnmappedVersionedReqs extends VersionSchema<SV, Method> ? MapVersionedReqsSchema<SV, UnmappedVersionedReqs> : never : never, SessionSchema extends infer UnmappedSessionSchema ? UnmappedSessionSchema extends Record<string, unknown> ? MapSessionSchema<SV, UnmappedSessionSchema> : never : never, BaseRequest>;
|
|
323
|
+
export type ExpressLikeAuthMapper<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends Record<string, unknown>, ReqHeaders extends Record<string, string>, VersionedReqs extends VersionedRequests, SessionSchema extends Record<string, unknown>, BaseRequest> = (payload: JWTPayload & SessionSchema, req?: ResolvedForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedReqs, SessionSchema, BaseRequest>) => Set<string> | Promise<Set<string>>;
|
|
324
|
+
type TokenPrefix<Auth extends AuthMethodsBase> = undefined extends Auth['tokenPrefix'] ? Auth extends BasicAuthMethods ? 'Basic ' : Auth extends HmacMethods ? 'HMAC ' : 'Bearer ' : `${Auth['tokenPrefix']} `;
|
|
325
|
+
type AuthHeaders<Auth extends AuthMethodsBase> = undefined extends Auth['headerName'] ? {
|
|
326
|
+
authorization: Auth extends HmacMethods ? `${TokenPrefix<Auth>}keyId=${string} ts=${string} nonce=${string} signature=${string}` : `${TokenPrefix<Auth>}${string}`;
|
|
327
|
+
} : {
|
|
328
|
+
[K in NonNullable<Auth['headerName']>]: `${TokenPrefix<Auth>}${string}`;
|
|
329
|
+
};
|
|
330
|
+
type AuthCollapse<Auth extends AuthMethodsBase> = undefined extends Auth['jwt'] ? undefined extends Auth['basic'] ? undefined extends Auth['hmac'] ? true : false : false : false;
|
|
331
|
+
export type LiveTypeFunctionRequestInit<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ReqBody extends Body<SV> | undefined, ReqQuery extends QueryObject<SV> | undefined, ReqHeaders extends HeadersObject<SV> | undefined, Auth extends AuthMethodsBase> = MakePropertyOptionalIfChildrenOptional<(Body<SV> extends ReqBody ? unknown : {
|
|
332
|
+
body: MapSchema<SV, ReqBody>;
|
|
333
|
+
}) & (QueryObject<SV> extends ReqQuery ? unknown : {
|
|
334
|
+
query: MapSchema<SV, ReqQuery>;
|
|
335
|
+
}) & (HeadersObject<SV> extends ReqHeaders ? true extends AuthCollapse<Auth> ? unknown : {
|
|
336
|
+
headers: AuthHeaders<Auth>;
|
|
337
|
+
} : true extends AuthCollapse<Auth> ? {
|
|
338
|
+
headers: MapSchema<SV, ReqHeaders>;
|
|
339
|
+
} : {
|
|
340
|
+
headers: MapSchema<SV, ReqHeaders> & AuthHeaders<Auth>;
|
|
341
|
+
}) & (ParamsObject<SV> extends P ? unknown : {
|
|
342
|
+
params: MapSchema<SV, P>;
|
|
343
|
+
})>;
|
|
344
|
+
/**
|
|
345
|
+
* Represents a live type function for the SDK.
|
|
346
|
+
*
|
|
347
|
+
* @template SV - A type that extends AnySchemaValidator.
|
|
348
|
+
* @template Path - A type for the route path.
|
|
349
|
+
* @template P - A type for request parameters.
|
|
350
|
+
* @template ResBodyMap - A type for response schemas.
|
|
351
|
+
* @template ReqBody - A type for the request body.
|
|
352
|
+
* @template ReqQuery - A type for the request query.
|
|
353
|
+
* @template ReqHeaders - A type for the request headers.
|
|
354
|
+
* @template ResHeaders - A type for the response headers.
|
|
355
|
+
*
|
|
356
|
+
*/
|
|
357
|
+
export type LiveTypeFunction<SV extends AnySchemaValidator, Route 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>, ContractMethod extends Method, VersionedApi extends VersionSchema<SV, ContractMethod>, Auth extends AuthMethodsBase> = string extends keyof VersionedApi ? (route: SanitizePathSlashes<Route>, ...reqInit: Prettify<Omit<RequestInit, 'method' | 'body' | 'query' | 'headers' | 'params'> & {
|
|
358
|
+
method: Uppercase<ContractMethod>;
|
|
359
|
+
} & LiveTypeFunctionRequestInit<SV, P, ReqBody, ReqQuery, ReqHeaders, Auth>> extends infer ReqInit ? ReqInit extends {
|
|
360
|
+
body: unknown;
|
|
361
|
+
} | {
|
|
362
|
+
params: unknown;
|
|
363
|
+
} | {
|
|
364
|
+
query: unknown;
|
|
365
|
+
} | {
|
|
366
|
+
headers: unknown;
|
|
367
|
+
} ? [reqInit: Prettify<ReqInit>] : [reqInit?: Prettify<ReqInit>] : never) => Promise<Prettify<SdkResponse<SV, ResponsesObject<SV> extends ResBodyMap ? Record<number, unknown> : ResBodyMap, ForklaunchResHeaders extends ResHeaders ? unknown : MapSchema<SV, ResHeaders>>>> : {
|
|
368
|
+
[K in keyof VersionedApi]: (...reqInit: Prettify<Omit<RequestInit, 'method' | 'body' | 'query' | 'headers' | 'params'> & LiveTypeFunctionRequestInit<SV, P, VersionedApi[K]['body'] extends Body<SV> ? VersionedApi[K]['body'] : Body<SV>, VersionedApi[K]['query'] extends QueryObject<SV> ? VersionedApi[K]['query'] : QueryObject<SV>, VersionedApi[K]['requestHeaders'] extends HeadersObject<SV> ? VersionedApi[K]['requestHeaders'] : HeadersObject<SV>, Auth>> & {
|
|
369
|
+
version: K;
|
|
370
|
+
} extends infer ReqInit ? ReqInit extends {
|
|
371
|
+
body: unknown;
|
|
372
|
+
} | {
|
|
373
|
+
params: unknown;
|
|
374
|
+
} | {
|
|
375
|
+
query: unknown;
|
|
376
|
+
} | {
|
|
377
|
+
headers: unknown;
|
|
378
|
+
} ? [reqInit: Prettify<ReqInit>] : [reqInit?: Prettify<ReqInit>] : never) => Promise<Prettify<SdkResponse<SV, ResponsesObject<SV> extends VersionedApi[K]['responses'] ? Record<number, unknown> : VersionedApi[K]['responses'], ForklaunchResHeaders extends VersionedApi[K]['responseHeaders'] ? unknown : MapSchema<SV, VersionedApi[K]['responseHeaders']>>>>;
|
|
379
|
+
};
|
|
380
|
+
/**
|
|
381
|
+
* Represents a live type function for the SDK.
|
|
382
|
+
*
|
|
383
|
+
* @template SV - A type that extends AnySchemaValidator.
|
|
384
|
+
* @template P - A type for request parameters.
|
|
385
|
+
* @template ResBodyMap - A type for response schemas.
|
|
386
|
+
* @template ReqBody - A type for the request body.
|
|
387
|
+
* @template ReqQuery - A type for the request query.
|
|
388
|
+
* @template ReqHeaders - A type for the request headers.
|
|
389
|
+
* @template ResHeaders - A type for the response headers.
|
|
390
|
+
*
|
|
391
|
+
*/
|
|
392
|
+
export type LiveSdkFunction<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>, VersionedApi extends VersionSchema<SV, Method>, Auth extends AuthMethodsBase> = string extends keyof VersionedApi ? (...reqInit: Prettify<Omit<RequestInit, 'method' | 'body' | 'query' | 'headers' | 'params'> & LiveTypeFunctionRequestInit<SV, P, ReqBody, ReqQuery, ReqHeaders, Auth>> extends infer ReqInit ? ReqInit extends {
|
|
393
|
+
body: unknown;
|
|
394
|
+
} | {
|
|
395
|
+
params: unknown;
|
|
396
|
+
} | {
|
|
397
|
+
query: unknown;
|
|
398
|
+
} | {
|
|
399
|
+
headers: unknown;
|
|
400
|
+
} ? [reqInit: Prettify<ReqInit>] : [reqInit?: Prettify<ReqInit>] : never) => Promise<Prettify<SdkResponse<SV, ResponsesObject<SV> extends ResBodyMap ? Record<number, unknown> : ResBodyMap, ForklaunchResHeaders extends ResHeaders ? unknown : MapSchema<SV, ResHeaders>>>> : {
|
|
401
|
+
[K in keyof VersionedApi]: (...reqInit: Prettify<Omit<RequestInit, 'method' | 'body' | 'query' | 'headers' | 'params'> & LiveTypeFunctionRequestInit<SV, P, VersionedApi[K]['body'] extends Body<SV> ? VersionedApi[K]['body'] : Body<SV>, VersionedApi[K]['query'] extends QueryObject<SV> ? VersionedApi[K]['query'] : QueryObject<SV>, VersionedApi[K]['requestHeaders'] extends HeadersObject<SV> ? VersionedApi[K]['requestHeaders'] : HeadersObject<SV>, Auth>> extends infer ReqInit ? ReqInit extends {
|
|
402
|
+
body: unknown;
|
|
403
|
+
} | {
|
|
404
|
+
params: unknown;
|
|
405
|
+
} | {
|
|
406
|
+
query: unknown;
|
|
407
|
+
} | {
|
|
408
|
+
headers: unknown;
|
|
409
|
+
} ? [reqInit: Prettify<ReqInit>] : [reqInit?: Prettify<ReqInit>] : never) => Promise<Prettify<SdkResponse<SV, ResponsesObject<SV> extends VersionedApi[K]['responses'] ? Record<number, unknown> : VersionedApi[K]['responses'], ForklaunchResHeaders extends VersionedApi[K]['responseHeaders'] ? unknown : MapSchema<SV, VersionedApi[K]['responseHeaders']>>>>;
|
|
410
|
+
};
|
|
411
|
+
/**
|
|
412
|
+
* Represents a basic SDK Response object.
|
|
413
|
+
*
|
|
414
|
+
* @template ResBodyMap - A type for the response body.
|
|
415
|
+
* @template ResHeaders - A type for the response headers.
|
|
416
|
+
*/
|
|
417
|
+
type SdkResponse<SV extends AnySchemaValidator, ResBodyMap extends Record<number, unknown>, ResHeaders extends Record<string, unknown> | unknown> = ({
|
|
418
|
+
[K in keyof Omit<ForklaunchResErrors, keyof ResBodyMap>]: {
|
|
419
|
+
code: K;
|
|
420
|
+
contentType: 'text/plain';
|
|
421
|
+
response: ForklaunchResErrors[K];
|
|
422
|
+
};
|
|
423
|
+
} & {
|
|
424
|
+
[K in keyof ResBodyMap]: {
|
|
425
|
+
code: K;
|
|
426
|
+
contentType: ExtractContentType<SV, ResBodyMap[K]>;
|
|
427
|
+
response: ExtractResponseBody<SV, ResBodyMap[K]>;
|
|
428
|
+
} & (unknown extends ResHeaders ? unknown : {
|
|
429
|
+
headers: ResHeaders;
|
|
430
|
+
});
|
|
431
|
+
})[keyof (Omit<ForklaunchResErrors, keyof ResBodyMap> & ResBodyMap)];
|
|
432
|
+
/**
|
|
433
|
+
* Represents the default error types for responses.
|
|
434
|
+
*/
|
|
435
|
+
export type ForklaunchResErrors<BadRequest = string, Unauthorized = string, NotFound = string, Forbidden = string, InternalServerErrorType = string> = {
|
|
436
|
+
400: BadRequest;
|
|
437
|
+
401: Unauthorized;
|
|
438
|
+
404: NotFound;
|
|
439
|
+
403: Forbidden;
|
|
440
|
+
500: InternalServerErrorType;
|
|
441
|
+
};
|
|
442
|
+
/**
|
|
443
|
+
* Represents the default header types for responses.
|
|
444
|
+
*/
|
|
445
|
+
export type ForklaunchResHeaders = {
|
|
446
|
+
'x-correlation-id': string;
|
|
447
|
+
};
|
|
448
|
+
/**
|
|
449
|
+
* Represents the default error types for responses.
|
|
450
|
+
*/
|
|
451
|
+
export type ErrorContainer<Code extends number> = {
|
|
452
|
+
/** The error code */
|
|
453
|
+
code: Code;
|
|
454
|
+
/** The error message */
|
|
455
|
+
error: string;
|
|
456
|
+
};
|
|
457
|
+
/**
|
|
458
|
+
* Represents a parsed response shape.
|
|
459
|
+
*/
|
|
460
|
+
export type ResponseShape<Params, Headers, Query, Body> = {
|
|
461
|
+
params: Params;
|
|
462
|
+
headers: Headers;
|
|
463
|
+
query: Query;
|
|
464
|
+
body: Body;
|
|
465
|
+
};
|
|
466
|
+
/**
|
|
467
|
+
* Represents a path match.
|
|
468
|
+
*/
|
|
469
|
+
export type PathMatch<SuppliedPath extends `/${string}`, ActualPath extends `/${string}`> = ActualPath extends SuppliedPath ? SuppliedPath extends ActualPath ? SuppliedPath : never : never;
|
|
470
|
+
export {};
|
|
471
|
+
//# sourceMappingURL=apiDefinition.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiDefinition.types.d.ts","sourceRoot":"","sources":["../../../src/http/types/apiDefinition.types.ts"],"names":[],"mappings":"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"}
|