@forklaunch/express 1.2.32 → 1.2.33
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/index.d.ts +48 -2062
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +9 -1
- package/lib/index.mjs +9 -1
- package/lib/src/cluster/bun.cluster.d.ts +4 -0
- package/lib/src/cluster/bun.cluster.d.ts.map +1 -0
- package/lib/src/cluster/bun.serve.shim.d.ts +55 -0
- package/lib/src/cluster/bun.serve.shim.d.ts.map +1 -0
- package/lib/src/cluster/bun.socket.shim.d.ts +81 -0
- package/lib/src/cluster/bun.socket.shim.d.ts.map +1 -0
- package/lib/src/cluster/node.cluster.d.ts +4 -0
- package/lib/src/cluster/node.cluster.d.ts.map +1 -0
- package/lib/src/expressApplication.d.ts +59 -0
- package/lib/src/expressApplication.d.ts.map +1 -0
- package/lib/src/expressRouter.d.ts +51 -0
- package/lib/src/expressRouter.d.ts.map +1 -0
- package/lib/src/handlers/checkout.d.ts +40 -0
- package/lib/src/handlers/checkout.d.ts.map +1 -0
- package/lib/src/handlers/copy.d.ts +89 -0
- package/lib/src/handlers/copy.d.ts.map +1 -0
- package/lib/src/handlers/delete.d.ts +59 -0
- package/lib/src/handlers/delete.d.ts.map +1 -0
- package/lib/src/handlers/get.d.ts +46 -0
- package/lib/src/handlers/get.d.ts.map +1 -0
- package/lib/src/handlers/head.d.ts +69 -0
- package/lib/src/handlers/head.d.ts.map +1 -0
- package/lib/src/handlers/link.d.ts +91 -0
- package/lib/src/handlers/link.d.ts.map +1 -0
- package/lib/src/handlers/lock.d.ts +90 -0
- package/lib/src/handlers/lock.d.ts.map +1 -0
- package/lib/src/handlers/m-search.d.ts +85 -0
- package/lib/src/handlers/m-search.d.ts.map +1 -0
- package/lib/src/handlers/merge.d.ts +101 -0
- package/lib/src/handlers/merge.d.ts.map +1 -0
- package/lib/src/handlers/middleware.d.ts +67 -0
- package/lib/src/handlers/middleware.d.ts.map +1 -0
- package/lib/src/handlers/mkcactivity.d.ts +76 -0
- package/lib/src/handlers/mkcactivity.d.ts.map +1 -0
- package/lib/src/handlers/mkcol.d.ts +76 -0
- package/lib/src/handlers/mkcol.d.ts.map +1 -0
- package/lib/src/handlers/move.d.ts +78 -0
- package/lib/src/handlers/move.d.ts.map +1 -0
- package/lib/src/handlers/notify.d.ts +75 -0
- package/lib/src/handlers/notify.d.ts.map +1 -0
- package/lib/src/handlers/options.d.ts +67 -0
- package/lib/src/handlers/options.d.ts.map +1 -0
- package/lib/src/handlers/patch.d.ts +86 -0
- package/lib/src/handlers/patch.d.ts.map +1 -0
- package/lib/src/handlers/post.d.ts +50 -0
- package/lib/src/handlers/post.d.ts.map +1 -0
- package/lib/src/handlers/propfind.d.ts +84 -0
- package/lib/src/handlers/propfind.d.ts.map +1 -0
- package/lib/src/handlers/proppatch.d.ts +84 -0
- package/lib/src/handlers/proppatch.d.ts.map +1 -0
- package/lib/src/handlers/purge.d.ts +63 -0
- package/lib/src/handlers/purge.d.ts.map +1 -0
- package/lib/src/handlers/put.d.ts +73 -0
- package/lib/src/handlers/put.d.ts.map +1 -0
- package/lib/src/handlers/report.d.ts +70 -0
- package/lib/src/handlers/report.d.ts.map +1 -0
- package/lib/src/handlers/search.d.ts +83 -0
- package/lib/src/handlers/search.d.ts.map +1 -0
- package/lib/src/handlers/subscribe.d.ts +75 -0
- package/lib/src/handlers/subscribe.d.ts.map +1 -0
- package/lib/src/handlers/trace.d.ts +59 -0
- package/lib/src/handlers/trace.d.ts.map +1 -0
- package/lib/src/handlers/unlink.d.ts +70 -0
- package/lib/src/handlers/unlink.d.ts.map +1 -0
- package/lib/src/handlers/unlock.d.ts +70 -0
- package/lib/src/handlers/unlock.d.ts.map +1 -0
- package/lib/src/handlers/unsubscribe.d.ts +71 -0
- package/lib/src/handlers/unsubscribe.d.ts.map +1 -0
- package/lib/src/middleware/async.middleware.d.ts +16 -0
- package/lib/src/middleware/async.middleware.d.ts.map +1 -0
- package/lib/src/middleware/content.parse.middleware.d.ts +13 -0
- package/lib/src/middleware/content.parse.middleware.d.ts.map +1 -0
- package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts +27 -0
- package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts.map +1 -0
- package/lib/src/types/export.types.d.ts +9 -0
- package/lib/src/types/export.types.d.ts.map +1 -0
- package/lib/src/types/express.types.d.ts +84 -0
- package/lib/src/types/express.types.d.ts.map +1 -0
- package/lib/src/types/expressOptions.types.d.ts +17 -0
- package/lib/src/types/expressOptions.types.d.ts.map +1 -0
- package/package.json +33 -32
- package/LICENSE +0 -21
- package/lib/index.d.mts +0 -2112
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a HEAD route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqQuery - The request query parameters type
|
|
15
|
+
* @template ReqHeaders - The request headers type
|
|
16
|
+
* @template ResHeaders - The response headers type
|
|
17
|
+
* @template LocalsObj - The locals object type
|
|
18
|
+
* @template Auth - The authentication method type
|
|
19
|
+
*
|
|
20
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
21
|
+
* @param {Path} path - The route path
|
|
22
|
+
* @param {ContractDetails<SV, 'head', Name, Path, P, ResBodyMap, never, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
23
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, never, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]} handlers - The route handlers
|
|
24
|
+
*
|
|
25
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* head(
|
|
30
|
+
* schemaValidator,
|
|
31
|
+
* '/files/:id',
|
|
32
|
+
* {
|
|
33
|
+
* summary: 'Get file metadata',
|
|
34
|
+
* description: 'Returns metadata about a file without the file content',
|
|
35
|
+
* tags: ['files'],
|
|
36
|
+
* parameters: [
|
|
37
|
+
* {
|
|
38
|
+
* name: 'id',
|
|
39
|
+
* in: 'path',
|
|
40
|
+
* required: true,
|
|
41
|
+
* schema: { type: 'string' }
|
|
42
|
+
* }
|
|
43
|
+
* ],
|
|
44
|
+
* responses: {
|
|
45
|
+
* 200: {
|
|
46
|
+
* description: 'File metadata',
|
|
47
|
+
* headers: {
|
|
48
|
+
* 'Content-Length': {
|
|
49
|
+
* schema: { type: 'integer' }
|
|
50
|
+
* },
|
|
51
|
+
* 'Content-Type': {
|
|
52
|
+
* schema: { type: 'string' }
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* },
|
|
58
|
+
* async (req, res) => {
|
|
59
|
+
* const { id } = req.params;
|
|
60
|
+
* const metadata = await getFileMetadata(id);
|
|
61
|
+
* res.set('Content-Length', metadata.size);
|
|
62
|
+
* res.set('Content-Type', metadata.type);
|
|
63
|
+
* res.status(200).end();
|
|
64
|
+
* }
|
|
65
|
+
* );
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare const head: <SV extends AnySchemaValidator, Name extends string, 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>, const VersionedApi extends VersionSchema<SV, 'head'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'head', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => import("@forklaunch/core/http").ExpressLikeTypedHandler<SV, Name, "head", Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction, Auth>;
|
|
69
|
+
//# sourceMappingURL=head.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head.d.ts","sourceRoot":"","sources":["../../../src/handlers/head.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,eAAO,MAAM,IAAI,GACf,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,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,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,EACpD,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE,2SAmBJ,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a LINK route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqBody - The request body type
|
|
15
|
+
* @template ReqQuery - The request query parameters type
|
|
16
|
+
* @template ReqHeaders - The request headers type
|
|
17
|
+
* @template ResHeaders - The response headers type
|
|
18
|
+
* @template LocalsObj - The locals object type
|
|
19
|
+
* @template Auth - The authentication methods base type
|
|
20
|
+
*
|
|
21
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
22
|
+
* @param {Path} path - The route path
|
|
23
|
+
* @param {ContractDetails<SV, 'middleware', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
24
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]} handlers - The route handlers
|
|
25
|
+
*
|
|
26
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* link(
|
|
31
|
+
* schemaValidator,
|
|
32
|
+
* '/resources/:id',
|
|
33
|
+
* {
|
|
34
|
+
* summary: 'Link resources',
|
|
35
|
+
* description: 'Establishes a relationship between two resources',
|
|
36
|
+
* tags: ['resources'],
|
|
37
|
+
* parameters: [
|
|
38
|
+
* {
|
|
39
|
+
* name: 'id',
|
|
40
|
+
* in: 'path',
|
|
41
|
+
* required: true,
|
|
42
|
+
* schema: { type: 'string' }
|
|
43
|
+
* }
|
|
44
|
+
* ],
|
|
45
|
+
* requestBody: {
|
|
46
|
+
* content: {
|
|
47
|
+
* 'application/json': {
|
|
48
|
+
* schema: {
|
|
49
|
+
* type: 'object',
|
|
50
|
+
* properties: {
|
|
51
|
+
* targetId: { type: 'string' },
|
|
52
|
+
* relationshipType: { type: 'string' }
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* },
|
|
58
|
+
* responses: {
|
|
59
|
+
* 201: {
|
|
60
|
+
* description: 'Resources linked successfully',
|
|
61
|
+
* content: {
|
|
62
|
+
* 'application/json': {
|
|
63
|
+
* schema: {
|
|
64
|
+
* type: 'object',
|
|
65
|
+
* properties: {
|
|
66
|
+
* sourceId: { type: 'string' },
|
|
67
|
+
* targetId: { type: 'string' },
|
|
68
|
+
* relationshipType: { type: 'string' }
|
|
69
|
+
* }
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
* }
|
|
75
|
+
* },
|
|
76
|
+
* async (req, res) => {
|
|
77
|
+
* const { id } = req.params;
|
|
78
|
+
* const { targetId, relationshipType } = req.body;
|
|
79
|
+
* const result = await linkResources(id, targetId, relationshipType);
|
|
80
|
+
* res.status(201).json(result);
|
|
81
|
+
* }
|
|
82
|
+
* );
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare const link: <SV extends AnySchemaValidator, Name extends string, 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>, const VersionedApi extends VersionSchema<SV, 'middleware'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => {
|
|
86
|
+
_typedHandler: true;
|
|
87
|
+
_path: Path;
|
|
88
|
+
contractDetails: import("@forklaunch/core/http").MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Auth>;
|
|
89
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>[];
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/handlers/link.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,eAAO,MAAM,IAAI,GACf,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,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,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,EAC1D,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE;;;;;CAmBJ,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a LOCK route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqBody - The request body type
|
|
15
|
+
* @template ReqQuery - The request query parameters type
|
|
16
|
+
* @template ReqHeaders - The request headers type
|
|
17
|
+
* @template ResHeaders - The response headers type
|
|
18
|
+
* @template LocalsObj - The locals object type
|
|
19
|
+
* @template Auth - The authentication method type
|
|
20
|
+
*
|
|
21
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
22
|
+
* @param {Path} path - The route path
|
|
23
|
+
* @param {ContractDetails<SV, 'middleware', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
24
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Auth>} handlers - The route handlers
|
|
25
|
+
*
|
|
26
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* lock(
|
|
31
|
+
* schemaValidator,
|
|
32
|
+
* '/resources/:id',
|
|
33
|
+
* {
|
|
34
|
+
* summary: 'Lock resource',
|
|
35
|
+
* description: 'Locks a resource to prevent concurrent modifications',
|
|
36
|
+
* tags: ['resources'],
|
|
37
|
+
* parameters: [
|
|
38
|
+
* {
|
|
39
|
+
* name: 'id',
|
|
40
|
+
* in: 'path',
|
|
41
|
+
* required: true,
|
|
42
|
+
* schema: { type: 'string' }
|
|
43
|
+
* }
|
|
44
|
+
* ],
|
|
45
|
+
* requestBody: {
|
|
46
|
+
* content: {
|
|
47
|
+
* 'application/json': {
|
|
48
|
+
* schema: {
|
|
49
|
+
* type: 'object',
|
|
50
|
+
* properties: {
|
|
51
|
+
* timeout: { type: 'integer' },
|
|
52
|
+
* owner: { type: 'string' }
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* },
|
|
58
|
+
* responses: {
|
|
59
|
+
* 200: {
|
|
60
|
+
* description: 'Resource locked successfully',
|
|
61
|
+
* content: {
|
|
62
|
+
* 'application/json': {
|
|
63
|
+
* schema: {
|
|
64
|
+
* type: 'object',
|
|
65
|
+
* properties: {
|
|
66
|
+
* lockToken: { type: 'string' },
|
|
67
|
+
* expiresAt: { type: 'string', format: 'date-time' }
|
|
68
|
+
* }
|
|
69
|
+
* }
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
* },
|
|
75
|
+
* async (req, res) => {
|
|
76
|
+
* const { id } = req.params;
|
|
77
|
+
* const { timeout, owner } = req.body;
|
|
78
|
+
* const result = await lockResource(id, timeout, owner);
|
|
79
|
+
* res.json(result);
|
|
80
|
+
* }
|
|
81
|
+
* );
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export declare const lock: <SV extends AnySchemaValidator, Name extends string, 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>, const VersionedApi extends VersionSchema<SV, 'middleware'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => {
|
|
85
|
+
_typedHandler: true;
|
|
86
|
+
_path: Path;
|
|
87
|
+
contractDetails: import("@forklaunch/core/http").MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Auth>;
|
|
88
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>[];
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/handlers/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,eAAO,MAAM,IAAI,GACf,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,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,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,EAC1D,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE;;;;;CAmBJ,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a M-SEARCH route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqBody - The request body type
|
|
15
|
+
* @template ReqQuery - The request query parameters type
|
|
16
|
+
* @template ReqHeaders - The request headers type
|
|
17
|
+
* @template ResHeaders - The response headers type
|
|
18
|
+
* @template LocalsObj - The locals object type
|
|
19
|
+
* @template Auth - The authentication methods base type
|
|
20
|
+
*
|
|
21
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
22
|
+
* @param {Path} path - The route path
|
|
23
|
+
* @param {ContractDetails<SV, 'middleware', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
24
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Auth>} handlers - The route handlers
|
|
25
|
+
*
|
|
26
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* mSearch(
|
|
31
|
+
* schemaValidator,
|
|
32
|
+
* '/devices',
|
|
33
|
+
* {
|
|
34
|
+
* summary: 'Search for devices',
|
|
35
|
+
* description: 'Multicast search for devices on the network',
|
|
36
|
+
* tags: ['devices'],
|
|
37
|
+
* requestBody: {
|
|
38
|
+
* content: {
|
|
39
|
+
* 'application/json': {
|
|
40
|
+
* schema: {
|
|
41
|
+
* type: 'object',
|
|
42
|
+
* properties: {
|
|
43
|
+
* searchType: { type: 'string' },
|
|
44
|
+
* maxWait: { type: 'integer' }
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* }
|
|
49
|
+
* },
|
|
50
|
+
* responses: {
|
|
51
|
+
* 200: {
|
|
52
|
+
* description: 'Devices found',
|
|
53
|
+
* content: {
|
|
54
|
+
* 'application/json': {
|
|
55
|
+
* schema: {
|
|
56
|
+
* type: 'array',
|
|
57
|
+
* items: {
|
|
58
|
+
* type: 'object',
|
|
59
|
+
* properties: {
|
|
60
|
+
* id: { type: 'string' },
|
|
61
|
+
* type: { type: 'string' },
|
|
62
|
+
* location: { type: 'string' }
|
|
63
|
+
* }
|
|
64
|
+
* }
|
|
65
|
+
* }
|
|
66
|
+
* }
|
|
67
|
+
* }
|
|
68
|
+
* }
|
|
69
|
+
* }
|
|
70
|
+
* },
|
|
71
|
+
* async (req, res) => {
|
|
72
|
+
* const { searchType, maxWait } = req.body;
|
|
73
|
+
* const devices = await searchDevices(searchType, maxWait);
|
|
74
|
+
* res.json(devices);
|
|
75
|
+
* }
|
|
76
|
+
* );
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare const mSearch: <SV extends AnySchemaValidator, Name extends string, 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>, const VersionedApi extends VersionSchema<SV, 'middleware'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => {
|
|
80
|
+
_typedHandler: true;
|
|
81
|
+
_path: Path;
|
|
82
|
+
contractDetails: import("@forklaunch/core/http").MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Auth>;
|
|
83
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>[];
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=m-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"m-search.d.ts","sourceRoot":"","sources":["../../../src/handlers/m-search.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,eAAO,MAAM,OAAO,GAClB,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,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,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,EAC1D,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE;;;;;CAmBJ,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a MERGE route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqBody - The request body type
|
|
15
|
+
* @template ReqQuery - The request query parameters type
|
|
16
|
+
* @template ReqHeaders - The request headers type
|
|
17
|
+
* @template ResHeaders - The response headers type
|
|
18
|
+
* @template LocalsObj - The locals object type
|
|
19
|
+
* @template Auth - The authentication methods base type
|
|
20
|
+
*
|
|
21
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
22
|
+
* @param {Path} path - The route path
|
|
23
|
+
* @param {ContractDetails<SV, 'middleware', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
24
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Auth>} handlers - The route handlers
|
|
25
|
+
*
|
|
26
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* merge(
|
|
31
|
+
* schemaValidator,
|
|
32
|
+
* '/documents/:id',
|
|
33
|
+
* {
|
|
34
|
+
* summary: 'Merge document',
|
|
35
|
+
* description: 'Merges changes from multiple sources into a document',
|
|
36
|
+
* tags: ['documents'],
|
|
37
|
+
* parameters: [
|
|
38
|
+
* {
|
|
39
|
+
* name: 'id',
|
|
40
|
+
* in: 'path',
|
|
41
|
+
* required: true,
|
|
42
|
+
* schema: { type: 'string' }
|
|
43
|
+
* }
|
|
44
|
+
* ],
|
|
45
|
+
* requestBody: {
|
|
46
|
+
* content: {
|
|
47
|
+
* 'application/json': {
|
|
48
|
+
* schema: {
|
|
49
|
+
* type: 'object',
|
|
50
|
+
* properties: {
|
|
51
|
+
* changes: {
|
|
52
|
+
* type: 'array',
|
|
53
|
+
* items: {
|
|
54
|
+
* type: 'object',
|
|
55
|
+
* properties: {
|
|
56
|
+
* source: { type: 'string' },
|
|
57
|
+
* content: { type: 'string' }
|
|
58
|
+
* }
|
|
59
|
+
* }
|
|
60
|
+
* }
|
|
61
|
+
* }
|
|
62
|
+
* }
|
|
63
|
+
* }
|
|
64
|
+
* }
|
|
65
|
+
* },
|
|
66
|
+
* responses: {
|
|
67
|
+
* 200: {
|
|
68
|
+
* description: 'Document merged successfully',
|
|
69
|
+
* content: {
|
|
70
|
+
* 'application/json': {
|
|
71
|
+
* schema: {
|
|
72
|
+
* type: 'object',
|
|
73
|
+
* properties: {
|
|
74
|
+
* id: { type: 'string' },
|
|
75
|
+
* mergedContent: { type: 'string' },
|
|
76
|
+
* conflicts: {
|
|
77
|
+
* type: 'array',
|
|
78
|
+
* items: { type: 'string' }
|
|
79
|
+
* }
|
|
80
|
+
* }
|
|
81
|
+
* }
|
|
82
|
+
* }
|
|
83
|
+
* }
|
|
84
|
+
* }
|
|
85
|
+
* }
|
|
86
|
+
* },
|
|
87
|
+
* async (req, res) => {
|
|
88
|
+
* const { id } = req.params;
|
|
89
|
+
* const { changes } = req.body;
|
|
90
|
+
* const result = await mergeDocument(id, changes);
|
|
91
|
+
* res.json(result);
|
|
92
|
+
* }
|
|
93
|
+
* );
|
|
94
|
+
*/
|
|
95
|
+
export declare const merge: <SV extends AnySchemaValidator, Name extends string, 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>, const VersionedApi extends VersionSchema<SV, 'middleware'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => {
|
|
96
|
+
_typedHandler: true;
|
|
97
|
+
_path: Path;
|
|
98
|
+
contractDetails: import("@forklaunch/core/http").MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Auth>;
|
|
99
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>[];
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/handlers/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AACH,eAAO,MAAM,KAAK,GAChB,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,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,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,EAC1D,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE;;;;;CAmBJ,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a middleware route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqBody - The request body type
|
|
15
|
+
* @template ReqQuery - The request query parameters type
|
|
16
|
+
* @template ReqHeaders - The request headers type
|
|
17
|
+
* @template ResHeaders - The response headers type
|
|
18
|
+
* @template LocalsObj - The locals object type
|
|
19
|
+
* @template Auth - The authentication methods type
|
|
20
|
+
*
|
|
21
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
22
|
+
* @param {Name} name - The name of the route
|
|
23
|
+
* @param {Path} path - The route path
|
|
24
|
+
* @param {ContractDetails<SV, 'middleware', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
25
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Response, NextFunction>[]} handlers - The route handlers
|
|
26
|
+
*
|
|
27
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* middleware(
|
|
32
|
+
* schemaValidator,
|
|
33
|
+
* '/middleware',
|
|
34
|
+
* {
|
|
35
|
+
* summary: 'Middleware example',
|
|
36
|
+
* description: 'Example middleware route',
|
|
37
|
+
* tags: ['middleware'],
|
|
38
|
+
* responses: {
|
|
39
|
+
* 200: {
|
|
40
|
+
* description: 'Middleware executed successfully',
|
|
41
|
+
* content: {
|
|
42
|
+
* 'application/json': {
|
|
43
|
+
* schema: {
|
|
44
|
+
* type: 'object',
|
|
45
|
+
* properties: {
|
|
46
|
+
* message: { type: 'string' }
|
|
47
|
+
* }
|
|
48
|
+
* }
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
* }
|
|
52
|
+
* }
|
|
53
|
+
* },
|
|
54
|
+
* async (req, res, next) => {
|
|
55
|
+
* // Middleware logic
|
|
56
|
+
* next();
|
|
57
|
+
* }
|
|
58
|
+
* );
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare const middleware: <SV extends AnySchemaValidator, Name extends string, 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>, const VersionedApi extends VersionSchema<SV, 'middleware'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => {
|
|
62
|
+
_typedHandler: true;
|
|
63
|
+
_path: Path;
|
|
64
|
+
contractDetails: import("@forklaunch/core/http").MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Auth>;
|
|
65
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>[];
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/handlers/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,UAAU,GACrB,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,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,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,EAC1D,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE;;;;;CAmBJ,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Body, ContractDetails, ExpressLikeSchemaHandler, HeadersObject, ParamsObject, QueryObject, ResolvedSessionObject, ResponsesObject, SchemaAuthMethods, SessionObject, VersionSchema } from '@forklaunch/core/http';
|
|
2
|
+
import { AnySchemaValidator } from '@forklaunch/validator';
|
|
3
|
+
import { NextFunction, Request, Response } from 'express';
|
|
4
|
+
import express from 'express-serve-static-core';
|
|
5
|
+
import { ParsedQs } from 'qs';
|
|
6
|
+
/**
|
|
7
|
+
* Creates an MKCACTIVITY route handler with schema validation and type safety.
|
|
8
|
+
*
|
|
9
|
+
* @template SV - The schema validator type
|
|
10
|
+
* @template Name - The name of the route
|
|
11
|
+
* @template Path - The route path type
|
|
12
|
+
* @template P - The path parameters type
|
|
13
|
+
* @template ResBodyMap - The response body map type
|
|
14
|
+
* @template ReqBody - The request body type
|
|
15
|
+
* @template ReqQuery - The request query parameters type
|
|
16
|
+
* @template ReqHeaders - The request headers type
|
|
17
|
+
* @template ResHeaders - The response headers type
|
|
18
|
+
* @template LocalsObj - The locals object type
|
|
19
|
+
* @template Auth - The authentication methods base type
|
|
20
|
+
*
|
|
21
|
+
* @param {SV} schemaValidator - The schema validator instance
|
|
22
|
+
* @param {Path} path - The route path
|
|
23
|
+
* @param {ContractDetails<SV, 'middleware', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - The contract details for the route
|
|
24
|
+
* @param {...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, Request, Auth>} handlers - The route handlers
|
|
25
|
+
*
|
|
26
|
+
* @returns {void} - Returns nothing, registers the route with Express
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* mkcActivity(
|
|
31
|
+
* schemaValidator,
|
|
32
|
+
* '/activities',
|
|
33
|
+
* {
|
|
34
|
+
* summary: 'Create activity',
|
|
35
|
+
* description: 'Creates a new activity',
|
|
36
|
+
* tags: ['activities'],
|
|
37
|
+
* body: {
|
|
38
|
+
* type: 'object',
|
|
39
|
+
* properties: {
|
|
40
|
+
* name: { type: 'string' },
|
|
41
|
+
* type: { type: 'string' }
|
|
42
|
+
* }
|
|
43
|
+
* },
|
|
44
|
+
* responses: {
|
|
45
|
+
* 201: {
|
|
46
|
+
* description: 'Activity created successfully',
|
|
47
|
+
* content: {
|
|
48
|
+
* 'application/json': {
|
|
49
|
+
* schema: {
|
|
50
|
+
* type: 'object',
|
|
51
|
+
* properties: {
|
|
52
|
+
* id: { type: 'string' },
|
|
53
|
+
* name: { type: 'string' },
|
|
54
|
+
* type: { type: 'string' }
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* }
|
|
58
|
+
* }
|
|
59
|
+
* }
|
|
60
|
+
* }
|
|
61
|
+
* },
|
|
62
|
+
* async (req, res) => {
|
|
63
|
+
* const { name, type } = req.body;
|
|
64
|
+
* // Create activity logic
|
|
65
|
+
* res.status(201).json({ id: 'act_123', name, type });
|
|
66
|
+
* }
|
|
67
|
+
* );
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare const mkcActivity: <SV extends AnySchemaValidator, Name extends string, 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>, const VersionedApi extends VersionSchema<SV, 'middleware'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request, Auth>, ...handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request, Response, NextFunction>[]) => {
|
|
71
|
+
_typedHandler: true;
|
|
72
|
+
_path: Path;
|
|
73
|
+
contractDetails: import("@forklaunch/core/http").MiddlewareContractDetails<SV, Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, VersionedApi, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Auth>;
|
|
74
|
+
handlers: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj, VersionedApi, ResolvedSessionObject<SV, Auth, SessionObject<SV>>, Request<express.ParamsDictionary, any, any, ParsedQs, Record<string, any>>, Response<any, Record<string, any>>, NextFunction>[];
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=mkcactivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mkcactivity.d.ts","sourceRoot":"","sources":["../../../src/handlers/mkcactivity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAI9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,WAAW,GACtB,EAAE,SAAS,kBAAkB,EAC7B,IAAI,SAAS,MAAM,EACnB,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,EACzC,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,EAC1D,KAAK,CAAC,IAAI,SAAS,iBAAiB,CAClC,EAAE,EACF,CAAC,EACD,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,CACR,mBAEgB,EAAE,QACb,IAAI,mBACO,eAAe,CAC9B,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,IAAI,CACL,eACY,wBAAwB,CACnC,EAAE,EACF,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,EAAE;;;;;CAmBJ,CAAC"}
|