@forklaunch/express 1.2.32 → 1.2.34

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 (86) 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 +22 -22
  86. package/lib/index.d.mts +0 -2112
@@ -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 MKCOL 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
+ * mkcol(
31
+ * schemaValidator,
32
+ * '/collections',
33
+ * {
34
+ * summary: 'Create collection',
35
+ * description: 'Creates a new collection',
36
+ * tags: ['collections'],
37
+ * body: {
38
+ * type: 'object',
39
+ * properties: {
40
+ * name: { type: 'string' },
41
+ * description: { type: 'string' }
42
+ * }
43
+ * },
44
+ * responses: {
45
+ * 201: {
46
+ * description: 'Collection created successfully',
47
+ * content: {
48
+ * 'application/json': {
49
+ * schema: {
50
+ * type: 'object',
51
+ * properties: {
52
+ * id: { type: 'string' },
53
+ * name: { type: 'string' },
54
+ * description: { type: 'string' }
55
+ * }
56
+ * }
57
+ * }
58
+ * }
59
+ * }
60
+ * }
61
+ * },
62
+ * async (req, res) => {
63
+ * const { name, description } = req.body;
64
+ * // Create collection logic
65
+ * res.status(201).json({ id: 'col_123', name, description });
66
+ * }
67
+ * );
68
+ * ```
69
+ */
70
+ export declare const mkcol: <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=mkcol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkcol.d.ts","sourceRoot":"","sources":["../../../src/handlers/mkcol.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,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,78 @@
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 MOVE 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
+ * move(
31
+ * schemaValidator,
32
+ * '/resources/:id/move',
33
+ * {
34
+ * summary: 'Move resource',
35
+ * description: 'Moves a resource to a new location',
36
+ * tags: ['resources'],
37
+ * pathParams: {
38
+ * id: { type: 'string' }
39
+ * },
40
+ * body: {
41
+ * type: 'object',
42
+ * properties: {
43
+ * destination: { type: 'string' }
44
+ * }
45
+ * },
46
+ * responses: {
47
+ * 200: {
48
+ * description: 'Resource moved successfully',
49
+ * content: {
50
+ * 'application/json': {
51
+ * schema: {
52
+ * type: 'object',
53
+ * properties: {
54
+ * id: { type: 'string' },
55
+ * location: { type: 'string' }
56
+ * }
57
+ * }
58
+ * }
59
+ * }
60
+ * }
61
+ * }
62
+ * },
63
+ * async (req, res) => {
64
+ * const { id } = req.params;
65
+ * const { destination } = req.body;
66
+ * // Move logic
67
+ * res.json({ id, location: destination });
68
+ * }
69
+ * );
70
+ * ```
71
+ */
72
+ export declare const move: <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>[]) => {
73
+ _typedHandler: true;
74
+ _path: Path;
75
+ 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>;
76
+ 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>[];
77
+ };
78
+ //# sourceMappingURL=move.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.d.ts","sourceRoot":"","sources":["../../../src/handlers/move.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;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,75 @@
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 NOTIFY 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
+ * notify(
31
+ * schemaValidator,
32
+ * '/notifications',
33
+ * {
34
+ * summary: 'Send notification',
35
+ * description: 'Sends a notification to subscribers',
36
+ * tags: ['notifications'],
37
+ * body: {
38
+ * type: 'object',
39
+ * properties: {
40
+ * message: { type: 'string' },
41
+ * type: { type: 'string' }
42
+ * }
43
+ * },
44
+ * responses: {
45
+ * 200: {
46
+ * description: 'Notification sent successfully',
47
+ * content: {
48
+ * 'application/json': {
49
+ * schema: {
50
+ * type: 'object',
51
+ * properties: {
52
+ * id: { type: 'string' },
53
+ * status: { type: 'string' }
54
+ * }
55
+ * }
56
+ * }
57
+ * }
58
+ * }
59
+ * }
60
+ * },
61
+ * async (req, res) => {
62
+ * const { message, type } = req.body;
63
+ * // Notification logic
64
+ * res.json({ id: 'not_123', status: 'sent' });
65
+ * }
66
+ * );
67
+ * ```
68
+ */
69
+ export declare const notify: <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>[]) => {
70
+ _typedHandler: true;
71
+ _path: Path;
72
+ 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>;
73
+ 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>[];
74
+ };
75
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/handlers/notify.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,eAAO,MAAM,MAAM,GACjB,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 an OPTIONS 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, 'options', 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
+ * options(
31
+ * schemaValidator,
32
+ * '/api',
33
+ * {
34
+ * summary: 'Get API options',
35
+ * description: 'Returns the available HTTP methods and other options for the API',
36
+ * tags: ['api'],
37
+ * responses: {
38
+ * 200: {
39
+ * description: 'Available options',
40
+ * content: {
41
+ * 'application/json': {
42
+ * schema: {
43
+ * type: 'object',
44
+ * properties: {
45
+ * methods: {
46
+ * type: 'array',
47
+ * items: { type: 'string' }
48
+ * },
49
+ * cors: { type: 'boolean' }
50
+ * }
51
+ * }
52
+ * }
53
+ * }
54
+ * }
55
+ * }
56
+ * },
57
+ * async (req, res) => {
58
+ * res.json({
59
+ * methods: ['GET', 'POST', 'PUT', 'DELETE'],
60
+ * cors: true
61
+ * });
62
+ * }
63
+ * );
64
+ * ```
65
+ */
66
+ export declare const options: <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, 'options'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'options', 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, "options", 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>;
67
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/handlers/options.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;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,SAAS,CAAC,EACvD,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,SAAS,EACT,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,8SAmBJ,CAAC"}
@@ -0,0 +1,86 @@
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 PATCH 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 (must start with '/')
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, 'patch', 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
+ * patch(
31
+ * schemaValidator,
32
+ * '/users/:id',
33
+ * {
34
+ * summary: 'Update user partially',
35
+ * description: 'Updates specific fields of a user by ID',
36
+ * tags: ['users'],
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
+ * name: { type: 'string' },
52
+ * email: { type: 'string' }
53
+ * }
54
+ * }
55
+ * }
56
+ * }
57
+ * },
58
+ * responses: {
59
+ * 200: {
60
+ * description: 'User updated successfully',
61
+ * content: {
62
+ * 'application/json': {
63
+ * schema: {
64
+ * type: 'object',
65
+ * properties: {
66
+ * id: { type: 'string' },
67
+ * name: { type: 'string' },
68
+ * email: { type: 'string' }
69
+ * }
70
+ * }
71
+ * }
72
+ * }
73
+ * }
74
+ * }
75
+ * },
76
+ * async (req, res) => {
77
+ * const { id } = req.params;
78
+ * const updates = req.body;
79
+ * const user = await updateUser(id, updates);
80
+ * res.json(user);
81
+ * }
82
+ * );
83
+ * ```
84
+ */
85
+ export declare const patch: <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, 'patch'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'patch', 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, "patch", 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>;
86
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/handlers/patch.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,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,OAAO,CAAC,EACrD,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,OAAO,EACP,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,4SAmBJ,CAAC"}
@@ -0,0 +1,50 @@
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 POST route handler with schema validation and type safety.
8
+ *
9
+ * @template SV - Schema validator type extending AnySchemaValidator
10
+ * @template Name - The name of the route
11
+ * @template Path - Route path type extending string with leading slash
12
+ * @template P - Parameters object type extending ParamsObject
13
+ * @template ResBodyMap - Response body map type extending ResponsesObject
14
+ * @template ReqBody - Request body type extending Body
15
+ * @template ReqQuery - Request query type extending QueryObject
16
+ * @template ReqHeaders - Request headers type extending HeadersObject
17
+ * @template ResHeaders - Response headers type extending HeadersObject
18
+ * @template LocalsObj - Local variables type extending Record<string, unknown>
19
+ * @template Auth - Auth methods type extending AuthMethodsBase
20
+ *
21
+ * @param {SV} schemaValidator - Schema validator instance
22
+ * @param {Path} path - Route path starting with '/'
23
+ * @param {ContractDetails<SV, 'post', Name, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, Request, Auth>} contractDetails - Contract details for route validation
24
+ * @param {...ExpressLikeSchemaHandler[]} handlers - Route handler middleware functions
25
+ * @returns {Function} Express route handler with schema validation
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const createUser = post(
30
+ * schemaValidator,
31
+ * '/users',
32
+ * {
33
+ * body: {
34
+ * type: 'object',
35
+ * properties: { name: { type: 'string' } },
36
+ * required: ['name']
37
+ * },
38
+ * responses: {
39
+ * 201: { type: 'object', properties: { id: { type: 'string' } } }
40
+ * }
41
+ * },
42
+ * async (req, res) => {
43
+ * const user = await createNewUser(req.body);
44
+ * res.status(201).json(user);
45
+ * }
46
+ * );
47
+ * ```
48
+ */
49
+ export declare const post: <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, 'post'>, const Auth extends SchemaAuthMethods<SV, P, ReqBody, ReqQuery, ReqHeaders, VersionedApi, Request>>(schemaValidator: SV, path: Path, contractDetails: ContractDetails<SV, Name, 'post', 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, "post", 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>;
50
+ //# sourceMappingURL=post.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/handlers/post.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;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,84 @@
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 PROPFIND 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, 'propfind', 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
+ * propfind(
31
+ * schemaValidator,
32
+ * '/resources/:id',
33
+ * {
34
+ * summary: 'Get resource properties',
35
+ * description: 'Retrieves properties of a resource',
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/xml': {
48
+ * schema: {
49
+ * type: 'string',
50
+ * description: 'XML request body with property names to retrieve'
51
+ * }
52
+ * }
53
+ * }
54
+ * },
55
+ * responses: {
56
+ * 207: {
57
+ * description: 'Multi-status response with property values',
58
+ * content: {
59
+ * 'application/xml': {
60
+ * schema: {
61
+ * type: 'string',
62
+ * description: 'XML response with property values'
63
+ * }
64
+ * }
65
+ * }
66
+ * }
67
+ * }
68
+ * },
69
+ * async (req, res) => {
70
+ * const { id } = req.params;
71
+ * const xmlRequest = req.body;
72
+ * const properties = await getResourceProperties(id, xmlRequest);
73
+ * res.status(207).type('application/xml').send(properties);
74
+ * }
75
+ * );
76
+ * ```
77
+ */
78
+ export declare const propfind: <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>[]) => {
79
+ _typedHandler: true;
80
+ _path: Path;
81
+ 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>;
82
+ 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>[];
83
+ };
84
+ //# sourceMappingURL=propfind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propfind.d.ts","sourceRoot":"","sources":["../../../src/handlers/propfind.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,eAAO,MAAM,QAAQ,GACnB,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,84 @@
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 PROPPATCH 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
+ * proppatch(
31
+ * schemaValidator,
32
+ * '/resources/:id',
33
+ * {
34
+ * summary: 'Update resource properties',
35
+ * description: 'Updates properties of a resource',
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/xml': {
48
+ * schema: {
49
+ * type: 'string',
50
+ * description: 'XML request body with property updates'
51
+ * }
52
+ * }
53
+ * }
54
+ * },
55
+ * responses: {
56
+ * 207: {
57
+ * description: 'Multi-status response with property update results',
58
+ * content: {
59
+ * 'application/xml': {
60
+ * schema: {
61
+ * type: 'string',
62
+ * description: 'XML response with property update status'
63
+ * }
64
+ * }
65
+ * }
66
+ * }
67
+ * }
68
+ * },
69
+ * async (req, res) => {
70
+ * const { id } = req.params;
71
+ * const xmlRequest = req.body;
72
+ * const result = await updateResourceProperties(id, xmlRequest);
73
+ * res.status(207).type('application/xml').send(result);
74
+ * }
75
+ * );
76
+ * ```
77
+ */
78
+ export declare const proppatch: <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>[]) => {
79
+ _typedHandler: true;
80
+ _path: Path;
81
+ 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>;
82
+ 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>[];
83
+ };
84
+ //# sourceMappingURL=proppatch.d.ts.map