@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.
Files changed (87) hide show
  1. package/lib/index.d.ts +48 -2062
  2. package/lib/index.d.ts.map +1 -0
  3. package/lib/index.js +9 -1
  4. package/lib/index.mjs +9 -1
  5. package/lib/src/cluster/bun.cluster.d.ts +4 -0
  6. package/lib/src/cluster/bun.cluster.d.ts.map +1 -0
  7. package/lib/src/cluster/bun.serve.shim.d.ts +55 -0
  8. package/lib/src/cluster/bun.serve.shim.d.ts.map +1 -0
  9. package/lib/src/cluster/bun.socket.shim.d.ts +81 -0
  10. package/lib/src/cluster/bun.socket.shim.d.ts.map +1 -0
  11. package/lib/src/cluster/node.cluster.d.ts +4 -0
  12. package/lib/src/cluster/node.cluster.d.ts.map +1 -0
  13. package/lib/src/expressApplication.d.ts +59 -0
  14. package/lib/src/expressApplication.d.ts.map +1 -0
  15. package/lib/src/expressRouter.d.ts +51 -0
  16. package/lib/src/expressRouter.d.ts.map +1 -0
  17. package/lib/src/handlers/checkout.d.ts +40 -0
  18. package/lib/src/handlers/checkout.d.ts.map +1 -0
  19. package/lib/src/handlers/copy.d.ts +89 -0
  20. package/lib/src/handlers/copy.d.ts.map +1 -0
  21. package/lib/src/handlers/delete.d.ts +59 -0
  22. package/lib/src/handlers/delete.d.ts.map +1 -0
  23. package/lib/src/handlers/get.d.ts +46 -0
  24. package/lib/src/handlers/get.d.ts.map +1 -0
  25. package/lib/src/handlers/head.d.ts +69 -0
  26. package/lib/src/handlers/head.d.ts.map +1 -0
  27. package/lib/src/handlers/link.d.ts +91 -0
  28. package/lib/src/handlers/link.d.ts.map +1 -0
  29. package/lib/src/handlers/lock.d.ts +90 -0
  30. package/lib/src/handlers/lock.d.ts.map +1 -0
  31. package/lib/src/handlers/m-search.d.ts +85 -0
  32. package/lib/src/handlers/m-search.d.ts.map +1 -0
  33. package/lib/src/handlers/merge.d.ts +101 -0
  34. package/lib/src/handlers/merge.d.ts.map +1 -0
  35. package/lib/src/handlers/middleware.d.ts +67 -0
  36. package/lib/src/handlers/middleware.d.ts.map +1 -0
  37. package/lib/src/handlers/mkcactivity.d.ts +76 -0
  38. package/lib/src/handlers/mkcactivity.d.ts.map +1 -0
  39. package/lib/src/handlers/mkcol.d.ts +76 -0
  40. package/lib/src/handlers/mkcol.d.ts.map +1 -0
  41. package/lib/src/handlers/move.d.ts +78 -0
  42. package/lib/src/handlers/move.d.ts.map +1 -0
  43. package/lib/src/handlers/notify.d.ts +75 -0
  44. package/lib/src/handlers/notify.d.ts.map +1 -0
  45. package/lib/src/handlers/options.d.ts +67 -0
  46. package/lib/src/handlers/options.d.ts.map +1 -0
  47. package/lib/src/handlers/patch.d.ts +86 -0
  48. package/lib/src/handlers/patch.d.ts.map +1 -0
  49. package/lib/src/handlers/post.d.ts +50 -0
  50. package/lib/src/handlers/post.d.ts.map +1 -0
  51. package/lib/src/handlers/propfind.d.ts +84 -0
  52. package/lib/src/handlers/propfind.d.ts.map +1 -0
  53. package/lib/src/handlers/proppatch.d.ts +84 -0
  54. package/lib/src/handlers/proppatch.d.ts.map +1 -0
  55. package/lib/src/handlers/purge.d.ts +63 -0
  56. package/lib/src/handlers/purge.d.ts.map +1 -0
  57. package/lib/src/handlers/put.d.ts +73 -0
  58. package/lib/src/handlers/put.d.ts.map +1 -0
  59. package/lib/src/handlers/report.d.ts +70 -0
  60. package/lib/src/handlers/report.d.ts.map +1 -0
  61. package/lib/src/handlers/search.d.ts +83 -0
  62. package/lib/src/handlers/search.d.ts.map +1 -0
  63. package/lib/src/handlers/subscribe.d.ts +75 -0
  64. package/lib/src/handlers/subscribe.d.ts.map +1 -0
  65. package/lib/src/handlers/trace.d.ts +59 -0
  66. package/lib/src/handlers/trace.d.ts.map +1 -0
  67. package/lib/src/handlers/unlink.d.ts +70 -0
  68. package/lib/src/handlers/unlink.d.ts.map +1 -0
  69. package/lib/src/handlers/unlock.d.ts +70 -0
  70. package/lib/src/handlers/unlock.d.ts.map +1 -0
  71. package/lib/src/handlers/unsubscribe.d.ts +71 -0
  72. package/lib/src/handlers/unsubscribe.d.ts.map +1 -0
  73. package/lib/src/middleware/async.middleware.d.ts +16 -0
  74. package/lib/src/middleware/async.middleware.d.ts.map +1 -0
  75. package/lib/src/middleware/content.parse.middleware.d.ts +13 -0
  76. package/lib/src/middleware/content.parse.middleware.d.ts.map +1 -0
  77. package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts +27 -0
  78. package/lib/src/middleware/enrichResponseTransmission.middleware.d.ts.map +1 -0
  79. package/lib/src/types/export.types.d.ts +9 -0
  80. package/lib/src/types/export.types.d.ts.map +1 -0
  81. package/lib/src/types/express.types.d.ts +84 -0
  82. package/lib/src/types/express.types.d.ts.map +1 -0
  83. package/lib/src/types/expressOptions.types.d.ts +17 -0
  84. package/lib/src/types/expressOptions.types.d.ts.map +1 -0
  85. package/package.json +33 -32
  86. package/LICENSE +0 -21
  87. 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"}