@duplojs/http 0.6.1 → 0.7.0

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 (187) hide show
  1. package/dist/client/getBody.cjs +1 -1
  2. package/dist/client/getBody.mjs +1 -1
  3. package/dist/client/hooks.d.ts +1 -25
  4. package/dist/client/httpClient.d.ts +29 -25
  5. package/dist/client/promiseRequest.cjs +3 -0
  6. package/dist/client/promiseRequest.d.ts +31 -39
  7. package/dist/client/promiseRequest.mjs +4 -1
  8. package/dist/client/types/clientResponse.d.ts +6 -6
  9. package/dist/client/types/hooks.d.ts +25 -0
  10. package/dist/client/types/index.cjs +2 -0
  11. package/dist/client/types/index.d.ts +2 -0
  12. package/dist/client/types/index.mjs +2 -0
  13. package/dist/client/types/promiseRequestParams.cjs +2 -0
  14. package/dist/client/types/promiseRequestParams.d.ts +9 -0
  15. package/dist/client/types/promiseRequestParams.mjs +1 -0
  16. package/dist/client/types/serverRoute.d.ts +19 -1
  17. package/dist/client/unexpectedResponseError.d.ts +1 -2
  18. package/dist/core/builders/preflight/route.cjs +1 -0
  19. package/dist/core/builders/preflight/route.d.ts +4 -2
  20. package/dist/core/builders/preflight/route.mjs +1 -0
  21. package/dist/core/builders/route/builder.cjs +1 -0
  22. package/dist/core/builders/route/builder.d.ts +4 -2
  23. package/dist/core/builders/route/builder.mjs +1 -0
  24. package/dist/core/clean/constraint.cjs +24 -0
  25. package/dist/core/clean/constraint.d.ts +8 -0
  26. package/dist/core/clean/constraint.mjs +22 -0
  27. package/dist/core/clean/constraintsSet.cjs +27 -0
  28. package/dist/core/clean/constraintsSet.d.ts +8 -0
  29. package/dist/core/clean/constraintsSet.mjs +25 -0
  30. package/dist/core/clean/entity.cjs +33 -0
  31. package/dist/core/clean/entity.d.ts +20 -0
  32. package/dist/core/clean/entity.mjs +31 -0
  33. package/dist/core/clean/index.cjs +8 -0
  34. package/dist/core/clean/index.d.ts +5 -0
  35. package/dist/core/clean/index.mjs +5 -0
  36. package/dist/core/clean/newType.cjs +15 -0
  37. package/dist/core/clean/newType.d.ts +8 -0
  38. package/dist/core/clean/newType.mjs +13 -0
  39. package/dist/core/clean/primitive.cjs +12 -0
  40. package/dist/core/clean/primitive.d.ts +8 -0
  41. package/dist/core/clean/primitive.mjs +10 -0
  42. package/dist/core/defaultHooks/index.cjs +50 -0
  43. package/dist/core/defaultHooks/index.d.ts +5 -0
  44. package/dist/core/defaultHooks/index.mjs +48 -0
  45. package/dist/{interfaces/node/error → core/errors}/bodyParseWrongChunkReceived.cjs +6 -4
  46. package/dist/core/errors/bodyParseWrongChunkReceived.d.ts +9 -0
  47. package/dist/core/errors/bodyParseWrongChunkReceived.mjs +14 -0
  48. package/dist/{interfaces/node/error → core/errors}/bodySizeExceedsLimitError.cjs +2 -2
  49. package/dist/{interfaces/node/error → core/errors}/bodySizeExceedsLimitError.d.ts +2 -2
  50. package/dist/{interfaces/node/error → core/errors}/bodySizeExceedsLimitError.mjs +2 -2
  51. package/dist/{interfaces/node/error → core/errors}/index.cjs +6 -4
  52. package/dist/{interfaces/node/error → core/errors}/index.d.ts +3 -2
  53. package/dist/{interfaces/node/error → core/errors}/index.mjs +3 -2
  54. package/dist/core/errors/parseJsonError.cjs +16 -0
  55. package/dist/core/errors/parseJsonError.d.ts +9 -0
  56. package/dist/core/errors/parseJsonError.mjs +14 -0
  57. package/dist/core/errors/wrongContentTypeError.cjs +16 -0
  58. package/dist/core/errors/wrongContentTypeError.d.ts +9 -0
  59. package/dist/core/errors/wrongContentTypeError.mjs +14 -0
  60. package/dist/core/functionsBuilders/route/create.d.ts +2 -2
  61. package/dist/core/functionsBuilders/route/default.cjs +0 -11
  62. package/dist/core/functionsBuilders/route/default.mjs +0 -11
  63. package/dist/core/functionsBuilders/route/hook.d.ts +2 -2
  64. package/dist/core/functionsBuilders/steps/create.d.ts +2 -2
  65. package/dist/core/functionsBuilders/steps/defaults/cutStep.cjs +15 -18
  66. package/dist/core/functionsBuilders/steps/defaults/cutStep.mjs +15 -18
  67. package/dist/core/functionsBuilders/steps/defaults/extractStep.cjs +43 -19
  68. package/dist/core/functionsBuilders/steps/defaults/extractStep.d.ts +2 -1
  69. package/dist/core/functionsBuilders/steps/defaults/extractStep.mjs +44 -20
  70. package/dist/core/functionsBuilders/steps/defaults/handlerStep.cjs +14 -8
  71. package/dist/core/functionsBuilders/steps/defaults/handlerStep.mjs +14 -8
  72. package/dist/core/hub/defaultBodyController.cjs +8 -0
  73. package/dist/core/hub/defaultBodyController.d.ts +1 -0
  74. package/dist/core/hub/defaultBodyController.mjs +6 -0
  75. package/dist/core/hub/hooks.cjs +3 -1
  76. package/dist/core/hub/hooks.d.ts +2 -3
  77. package/dist/core/hub/hooks.mjs +3 -1
  78. package/dist/core/hub/index.cjs +101 -127
  79. package/dist/core/hub/index.d.ts +33 -34
  80. package/dist/core/hub/index.mjs +100 -128
  81. package/dist/core/implementHttpServer.cjs +5 -5
  82. package/dist/core/implementHttpServer.d.ts +2 -1
  83. package/dist/core/implementHttpServer.mjs +5 -5
  84. package/dist/core/index.cjs +35 -10
  85. package/dist/core/index.d.ts +3 -0
  86. package/dist/core/index.mjs +14 -2
  87. package/dist/core/request/bodyController/base.cjs +36 -0
  88. package/dist/core/request/bodyController/base.d.ts +28 -0
  89. package/dist/core/request/bodyController/base.mjs +34 -0
  90. package/dist/core/request/bodyController/formData.cjs +28 -0
  91. package/dist/core/request/bodyController/formData.d.ts +22 -0
  92. package/dist/core/request/bodyController/formData.mjs +25 -0
  93. package/dist/core/request/bodyController/index.cjs +13 -0
  94. package/dist/core/request/bodyController/index.d.ts +3 -0
  95. package/dist/core/request/bodyController/index.mjs +3 -0
  96. package/dist/core/request/bodyController/text.cjs +14 -0
  97. package/dist/core/request/bodyController/text.d.ts +10 -0
  98. package/dist/core/request/bodyController/text.mjs +11 -0
  99. package/dist/core/{request.cjs → request/index.cjs} +21 -3
  100. package/dist/core/{request.d.ts → request/index.d.ts} +10 -3
  101. package/dist/core/request/index.mjs +50 -0
  102. package/dist/core/response/contract.d.ts +1 -1
  103. package/dist/core/route/hooks.d.ts +0 -2
  104. package/dist/core/route/index.d.ts +2 -1
  105. package/dist/core/router/index.cjs +27 -8
  106. package/dist/core/router/index.d.ts +2 -1
  107. package/dist/core/router/index.mjs +28 -10
  108. package/dist/core/router/notFoundBodyReaderImplementationError.cjs +16 -0
  109. package/dist/core/router/notFoundBodyReaderImplementationError.d.ts +11 -0
  110. package/dist/core/router/notFoundBodyReaderImplementationError.mjs +14 -0
  111. package/dist/core/router/types/buildedRouter.d.ts +3 -3
  112. package/dist/core/steps/extract.d.ts +3 -1
  113. package/dist/core/steps/types/steps.d.ts +1 -3
  114. package/dist/core/types/hosts.cjs +2 -0
  115. package/dist/core/types/hosts.d.ts +4 -0
  116. package/dist/core/types/hosts.mjs +1 -0
  117. package/dist/core/types/httpServerParams.cjs +2 -0
  118. package/dist/core/types/httpServerParams.d.ts +11 -0
  119. package/dist/core/types/httpServerParams.mjs +1 -0
  120. package/dist/core/types/index.cjs +2 -0
  121. package/dist/core/types/index.d.ts +2 -0
  122. package/dist/core/types/index.mjs +2 -0
  123. package/dist/interfaces/bun/types/request.cjs +1 -1
  124. package/dist/interfaces/bun/types/request.mjs +1 -1
  125. package/dist/interfaces/node/bodyReaders/formData/error.cjs +14 -0
  126. package/dist/interfaces/node/bodyReaders/formData/error.d.ts +8 -0
  127. package/dist/interfaces/node/bodyReaders/formData/error.mjs +12 -0
  128. package/dist/interfaces/node/bodyReaders/formData/index.cjs +94 -0
  129. package/dist/interfaces/node/bodyReaders/formData/index.d.ts +4 -0
  130. package/dist/interfaces/node/bodyReaders/formData/index.mjs +90 -0
  131. package/dist/interfaces/node/bodyReaders/formData/readRequestFormData.cjs +175 -0
  132. package/dist/interfaces/node/bodyReaders/formData/readRequestFormData.d.ts +21 -0
  133. package/dist/interfaces/node/bodyReaders/formData/readRequestFormData.mjs +173 -0
  134. package/dist/interfaces/node/bodyReaders/index.cjs +9 -0
  135. package/dist/interfaces/node/bodyReaders/index.d.ts +2 -0
  136. package/dist/interfaces/node/bodyReaders/index.mjs +2 -0
  137. package/dist/interfaces/node/bodyReaders/text/index.cjs +41 -0
  138. package/dist/interfaces/node/bodyReaders/text/index.d.ts +3 -0
  139. package/dist/interfaces/node/bodyReaders/text/index.mjs +38 -0
  140. package/dist/interfaces/node/bodyReaders/text/readRequestText.cjs +37 -0
  141. package/dist/interfaces/node/bodyReaders/text/readRequestText.d.ts +6 -0
  142. package/dist/interfaces/node/bodyReaders/text/readRequestText.mjs +35 -0
  143. package/dist/interfaces/node/createHttpServer.cjs +13 -5
  144. package/dist/interfaces/node/createHttpServer.d.ts +13 -12
  145. package/dist/interfaces/node/createHttpServer.mjs +13 -5
  146. package/dist/interfaces/node/hooks/index.cjs +47 -0
  147. package/dist/interfaces/node/hooks/index.d.ts +5 -0
  148. package/dist/interfaces/node/hooks/index.mjs +45 -0
  149. package/dist/interfaces/node/index.cjs +13 -9
  150. package/dist/interfaces/node/index.d.ts +1 -1
  151. package/dist/interfaces/node/index.mjs +7 -5
  152. package/dist/interfaces/node/types/index.cjs +0 -1
  153. package/dist/interfaces/node/types/index.d.ts +0 -1
  154. package/dist/interfaces/node/types/index.mjs +0 -1
  155. package/dist/interfaces/node/types/request.cjs +1 -1
  156. package/dist/interfaces/node/types/request.mjs +1 -1
  157. package/dist/plugins/codeGenerator/index.cjs +2 -0
  158. package/dist/plugins/codeGenerator/index.mjs +1 -1
  159. package/dist/plugins/codeGenerator/plugin.cjs +8 -4
  160. package/dist/plugins/codeGenerator/plugin.mjs +9 -5
  161. package/dist/plugins/codeGenerator/routeToDataParser.cjs +24 -1
  162. package/dist/plugins/codeGenerator/routeToDataParser.d.ts +34 -0
  163. package/dist/plugins/codeGenerator/routeToDataParser.mjs +24 -3
  164. package/dist/plugins/codeGenerator/typescriptTransfomer.cjs +9 -0
  165. package/dist/plugins/codeGenerator/typescriptTransfomer.d.ts +1 -0
  166. package/dist/plugins/codeGenerator/typescriptTransfomer.mjs +7 -0
  167. package/dist/plugins/openApiGenerator/makeOpenApiRoute.d.ts +3 -0
  168. package/dist/plugins/openApiGenerator/plugin.cjs +3 -3
  169. package/dist/plugins/openApiGenerator/plugin.mjs +4 -4
  170. package/dist/plugins/openApiGenerator/routeToOpenApi.cjs +16 -1
  171. package/dist/plugins/openApiGenerator/routeToOpenApi.d.ts +10 -1
  172. package/dist/plugins/openApiGenerator/routeToOpenApi.mjs +16 -1
  173. package/dist/plugins/openApiGenerator/types/entrypoint.d.ts +6 -1
  174. package/dist/plugins/openApiGenerator/types/openApiMethod.d.ts +1 -1
  175. package/package.json +5 -6
  176. package/dist/core/request.mjs +0 -32
  177. package/dist/interfaces/node/error/bodyParseUnknownError.cjs +0 -16
  178. package/dist/interfaces/node/error/bodyParseUnknownError.d.ts +0 -9
  179. package/dist/interfaces/node/error/bodyParseUnknownError.mjs +0 -14
  180. package/dist/interfaces/node/error/bodyParseWrongChunkReceived.d.ts +0 -8
  181. package/dist/interfaces/node/error/bodyParseWrongChunkReceived.mjs +0 -12
  182. package/dist/interfaces/node/hooks.cjs +0 -126
  183. package/dist/interfaces/node/hooks.d.ts +0 -8
  184. package/dist/interfaces/node/hooks.mjs +0 -124
  185. package/dist/interfaces/node/types/host.d.ts +0 -4
  186. /package/dist/{interfaces/node/types/host.cjs → client/types/hooks.cjs} +0 -0
  187. /package/dist/{interfaces/node/types/host.mjs → client/types/hooks.mjs} +0 -0
@@ -9,15 +9,18 @@ var checker$2 = require('./checker.cjs');
9
9
  require('./floor.cjs');
10
10
  var kind$1 = require('./kind.cjs');
11
11
  var index$1 = require('./process/index.cjs');
12
- var request = require('./request.cjs');
12
+ var index$2 = require('./request/index.cjs');
13
13
  var presetChecker$1 = require('./presetChecker.cjs');
14
- var index$2 = require('./hub/index.cjs');
14
+ var index$3 = require('./hub/index.cjs');
15
15
  require('./functionsBuilders/index.cjs');
16
- var index$3 = require('./router/index.cjs');
16
+ var index$4 = require('./router/index.cjs');
17
17
  var stringIdentifier = require('./stringIdentifier.cjs');
18
18
  require('./metadata/index.cjs');
19
19
  var implementHttpServer = require('./implementHttpServer.cjs');
20
20
  var narrowingInput = require('./narrowingInput.cjs');
21
+ require('./clean/index.cjs');
22
+ var index$5 = require('./defaultHooks/index.cjs');
23
+ require('./errors/index.cjs');
21
24
  var checker = require('./builders/checker.cjs');
22
25
  var builder = require('./builders/route/builder.cjs');
23
26
  var store = require('./builders/route/store.cjs');
@@ -36,9 +39,13 @@ var cut = require('./steps/cut.cjs');
36
39
  var handler = require('./steps/handler.cjs');
37
40
  var process = require('./steps/process.cjs');
38
41
  var presetChecker = require('./steps/presetChecker.cjs');
42
+ var base$1 = require('./request/bodyController/base.cjs');
43
+ var formData = require('./request/bodyController/formData.cjs');
44
+ var text = require('./request/bodyController/text.cjs');
39
45
  var hooks$1 = require('./hub/hooks.cjs');
40
46
  var defaultNotfoundHandler = require('./hub/defaultNotfoundHandler.cjs');
41
47
  var defaultExtractContract = require('./hub/defaultExtractContract.cjs');
48
+ var defaultBodyController = require('./hub/defaultBodyController.cjs');
42
49
  var build = require('./functionsBuilders/route/build.cjs');
43
50
  var create = require('./functionsBuilders/route/create.cjs');
44
51
  var _default = require('./functionsBuilders/route/default.cjs');
@@ -53,8 +60,13 @@ var build$1 = require('./functionsBuilders/steps/build.cjs');
53
60
  var pathToRegExp = require('./router/pathToRegExp.cjs');
54
61
  var buildError = require('./router/buildError.cjs');
55
62
  var decodeUrl = require('./router/decodeUrl.cjs');
56
- var base$1 = require('./metadata/base.cjs');
63
+ var notFoundBodyReaderImplementationError = require('./router/notFoundBodyReaderImplementationError.cjs');
64
+ var base$2 = require('./metadata/base.cjs');
57
65
  var ignoreByRouteStore = require('./metadata/ignoreByRouteStore.cjs');
66
+ var wrongContentTypeError = require('./errors/wrongContentTypeError.cjs');
67
+ var bodyParseWrongChunkReceived = require('./errors/bodyParseWrongChunkReceived.cjs');
68
+ var bodySizeExceedsLimitError = require('./errors/bodySizeExceedsLimitError.cjs');
69
+ var parseJsonError = require('./errors/parseJsonError.cjs');
58
70
 
59
71
 
60
72
 
@@ -66,15 +78,17 @@ exports.createChecker = checker$2.createChecker;
66
78
  exports.createCoreLibKind = kind$1.createCoreLibKind;
67
79
  exports.createProcess = index$1.createProcess;
68
80
  exports.processKind = index$1.processKind;
69
- exports.Request = request.Request;
81
+ exports.Request = index$2.Request;
70
82
  exports.createPresetChecker = presetChecker$1.createPresetChecker;
71
83
  exports.presetCheckerKind = presetChecker$1.presetCheckerKind;
72
- exports.createHub = index$2.createHub;
73
- exports.hubKind = index$2.hubKind;
74
- exports.buildRouter = index$3.buildRouter;
84
+ exports.Hub = index$3.Hub;
85
+ exports.createHub = index$3.createHub;
86
+ exports.hubKind = index$3.hubKind;
87
+ exports.buildRouter = index$4.buildRouter;
75
88
  exports.createCoreLibStringIdentifier = stringIdentifier.createCoreLibStringIdentifier;
76
89
  exports.implementHttpServer = implementHttpServer.implementHttpServer;
77
90
  exports.createNarrowingInput = narrowingInput.createNarrowingInput;
91
+ exports.initDefaultHook = index$5.initDefaultHook;
78
92
  exports.checkerBuilder = checker.checkerBuilder;
79
93
  exports.useCheckerBuilder = checker.useCheckerBuilder;
80
94
  exports.routeBuilderHandler = builder.routeBuilderHandler;
@@ -109,6 +123,11 @@ exports.createProcessStep = process.createProcessStep;
109
123
  exports.processStepKind = process.processStepKind;
110
124
  exports.createPresetCheckerStep = presetChecker.createPresetCheckerStep;
111
125
  exports.presetCheckerStepKind = presetChecker.presetCheckerStepKind;
126
+ exports.createBodyController = base$1.createBodyController;
127
+ exports.FormDataBodyController = formData.FormDataBodyController;
128
+ exports.controlBodyAsFormData = formData.controlBodyAsFormData;
129
+ exports.TextBodyController = text.TextBodyController;
130
+ exports.controlBodyAsText = text.controlBodyAsText;
112
131
  exports.createHookHubLifeCycle = hooks$1.createHookHubLifeCycle;
113
132
  exports.hookServerExitKind = hooks$1.hookServerExitKind;
114
133
  exports.hookServerNextKind = hooks$1.hookServerNextKind;
@@ -119,6 +138,7 @@ exports.serverErrorExitHookFunction = hooks$1.serverErrorExitHookFunction;
119
138
  exports.serverErrorNextHookFunction = hooks$1.serverErrorNextHookFunction;
120
139
  exports.defaultNotfoundHandler = defaultNotfoundHandler.defaultNotfoundHandler;
121
140
  exports.defaultExtractContract = defaultExtractContract.defaultExtractContract;
141
+ exports.defaultBodyController = defaultBodyController.defaultBodyController;
122
142
  exports.buildRouteFunction = build.buildRouteFunction;
123
143
  exports.createRouteFunctionBuilder = create.createRouteFunctionBuilder;
124
144
  exports.defaultRouteFunctionBuilder = _default.defaultRouteFunctionBuilder;
@@ -141,6 +161,11 @@ exports.RouterBuildError = buildError.RouterBuildError;
141
161
  exports.decodeUrl = decodeUrl.decodeUrl;
142
162
  exports.regexQueryAnalyser = decodeUrl.regexQueryAnalyser;
143
163
  exports.regexUrlAnalyser = decodeUrl.regexUrlAnalyser;
144
- exports.createMetadata = base$1.createMetadata;
145
- exports.metadataKind = base$1.metadataKind;
164
+ exports.NotFoundBodyReaderImplementationError = notFoundBodyReaderImplementationError.NotFoundBodyReaderImplementationError;
165
+ exports.createMetadata = base$2.createMetadata;
166
+ exports.metadataKind = base$2.metadataKind;
146
167
  exports.IgnoreByRouteStoreMetadata = ignoreByRouteStore.IgnoreByRouteStoreMetadata;
168
+ exports.WrongContentTypeError = wrongContentTypeError.WrongContentTypeError;
169
+ exports.BodyParseWrongChunkReceived = bodyParseWrongChunkReceived.BodyParseWrongChunkReceived;
170
+ exports.BodySizeExceedsLimitError = bodySizeExceedsLimitError.BodySizeExceedsLimitError;
171
+ exports.ParseJsonError = parseJsonError.ParseJsonError;
@@ -16,3 +16,6 @@ export * from "./stringIdentifier";
16
16
  export * from "./metadata";
17
17
  export * from "./implementHttpServer";
18
18
  export * from "./narrowingInput";
19
+ export * from "./clean";
20
+ export * from "./defaultHooks";
21
+ export * from "./errors";
@@ -7,15 +7,18 @@ export { checkerKind, checkerOutputKind, createChecker } from './checker.mjs';
7
7
  import './floor.mjs';
8
8
  export { createCoreLibKind } from './kind.mjs';
9
9
  export { createProcess, processKind } from './process/index.mjs';
10
- export { Request } from './request.mjs';
10
+ export { Request } from './request/index.mjs';
11
11
  export { createPresetChecker, presetCheckerKind } from './presetChecker.mjs';
12
- export { createHub, hubKind } from './hub/index.mjs';
12
+ export { Hub, createHub, hubKind } from './hub/index.mjs';
13
13
  import './functionsBuilders/index.mjs';
14
14
  export { buildRouter } from './router/index.mjs';
15
15
  export { createCoreLibStringIdentifier } from './stringIdentifier.mjs';
16
16
  import './metadata/index.mjs';
17
17
  export { implementHttpServer } from './implementHttpServer.mjs';
18
18
  export { createNarrowingInput } from './narrowingInput.mjs';
19
+ import './clean/index.mjs';
20
+ export { initDefaultHook } from './defaultHooks/index.mjs';
21
+ import './errors/index.mjs';
19
22
  export { checkerBuilder, useCheckerBuilder } from './builders/checker.mjs';
20
23
  export { routeBuilderHandler, useRouteBuilder } from './builders/route/builder.mjs';
21
24
  export { routeStore } from './builders/route/store.mjs';
@@ -34,9 +37,13 @@ export { createCutStep, cutStepKind, cutStepOutputKind } from './steps/cut.mjs';
34
37
  export { createHandlerStep, handlerStepKind } from './steps/handler.mjs';
35
38
  export { createProcessStep, processStepKind } from './steps/process.mjs';
36
39
  export { createPresetCheckerStep, presetCheckerStepKind } from './steps/presetChecker.mjs';
40
+ export { createBodyController } from './request/bodyController/base.mjs';
41
+ export { FormDataBodyController, controlBodyAsFormData } from './request/bodyController/formData.mjs';
42
+ export { TextBodyController, controlBodyAsText } from './request/bodyController/text.mjs';
37
43
  export { createHookHubLifeCycle, hookServerExitKind, hookServerNextKind, launchHookBeforeBuildRoute, launchHookServer, launchHookServerError, serverErrorExitHookFunction, serverErrorNextHookFunction } from './hub/hooks.mjs';
38
44
  export { defaultNotfoundHandler } from './hub/defaultNotfoundHandler.mjs';
39
45
  export { defaultExtractContract } from './hub/defaultExtractContract.mjs';
46
+ export { defaultBodyController } from './hub/defaultBodyController.mjs';
40
47
  export { buildRouteFunction } from './functionsBuilders/route/build.mjs';
41
48
  export { createRouteFunctionBuilder } from './functionsBuilders/route/create.mjs';
42
49
  export { defaultRouteFunctionBuilder } from './functionsBuilders/route/default.mjs';
@@ -51,5 +58,10 @@ export { buildStepFunction } from './functionsBuilders/steps/build.mjs';
51
58
  export { pathToRegExp } from './router/pathToRegExp.mjs';
52
59
  export { RouterBuildError } from './router/buildError.mjs';
53
60
  export { decodeUrl, regexQueryAnalyser, regexUrlAnalyser } from './router/decodeUrl.mjs';
61
+ export { NotFoundBodyReaderImplementationError } from './router/notFoundBodyReaderImplementationError.mjs';
54
62
  export { createMetadata, metadataKind } from './metadata/base.mjs';
55
63
  export { IgnoreByRouteStoreMetadata } from './metadata/ignoreByRouteStore.mjs';
64
+ export { WrongContentTypeError } from './errors/wrongContentTypeError.mjs';
65
+ export { BodyParseWrongChunkReceived } from './errors/bodyParseWrongChunkReceived.mjs';
66
+ export { BodySizeExceedsLimitError } from './errors/bodySizeExceedsLimitError.mjs';
67
+ export { ParseJsonError } from './errors/parseJsonError.mjs';
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../../kind.cjs');
4
+ var utils = require('@duplojs/utils');
5
+
6
+ const bodyReaderKind = kind.createCoreLibKind("body-reader");
7
+ const bodyReaderImplementationKind = kind.createCoreLibKind("body-reader-implementation");
8
+ const bodyControllerKind = kind.createCoreLibKind("body-controller");
9
+ const bodyControllerHandlerKind = kind.createCoreLibKind("body-controller-handler");
10
+ function createBodyController(name) {
11
+ return bodyControllerHandlerKind.setTo({
12
+ name,
13
+ create(params) {
14
+ return bodyControllerKind.setTo({
15
+ name,
16
+ params,
17
+ tryToCreateReader(readerImplementation) {
18
+ if (bodyReaderImplementationKind.getValue(readerImplementation) !== name) {
19
+ return utils.E.fail();
20
+ }
21
+ return utils.E.success(bodyReaderKind.setTo({
22
+ read: (request) => readerImplementation.read(request, params),
23
+ }, name));
24
+ },
25
+ }, name);
26
+ },
27
+ createReaderImplementation(read) {
28
+ return bodyReaderImplementationKind.setTo({ read }, name);
29
+ },
30
+ is(input) {
31
+ return bodyControllerKind.has(input) && bodyControllerKind.getValue(input) === name;
32
+ },
33
+ });
34
+ }
35
+
36
+ exports.createBodyController = createBodyController;
@@ -0,0 +1,28 @@
1
+ import { type Request } from "../../request";
2
+ import { E, type Kind } from "@duplojs/utils";
3
+ export interface BodyControllerParams {
4
+ bodyMaxSize?: number;
5
+ }
6
+ declare const bodyReaderKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/body-reader", string>>;
7
+ export interface BodyReader<GenericName extends string = string> extends Kind<typeof bodyReaderKind.definition, GenericName> {
8
+ read(request: Request): Promise<E.Success | E.Error<Error>>;
9
+ }
10
+ declare const bodyReaderImplementationKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/body-reader-implementation", string>>;
11
+ export interface BodyReaderImplementation<GenericName extends string = string, GenericParams extends BodyControllerParams = BodyControllerParams> extends Kind<typeof bodyReaderImplementationKind.definition, GenericName> {
12
+ read(request: Request, params: GenericParams): Promise<E.Success | E.Error<Error>>;
13
+ }
14
+ declare const bodyControllerKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/body-controller", string>>;
15
+ export interface BodyController<GenericName extends string = string, GenericParams extends BodyControllerParams = BodyControllerParams> extends Kind<typeof bodyControllerKind.definition, GenericName> {
16
+ readonly name: GenericName;
17
+ readonly params: GenericParams;
18
+ tryToCreateReader(readerImplementation: BodyReaderImplementation): E.Success<BodyReader<GenericName>> | E.Fail;
19
+ }
20
+ declare const bodyControllerHandlerKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/body-controller-handler", unknown>>;
21
+ export interface BodyControllerHandler<GenericName extends string = string, GenericParams extends BodyControllerParams = BodyControllerParams> extends Kind<typeof bodyControllerHandlerKind.definition> {
22
+ readonly name: GenericName;
23
+ create(params: GenericParams): BodyController<GenericName, GenericParams>;
24
+ createReaderImplementation(read: BodyReaderImplementation<GenericName, GenericParams>["read"]): BodyReaderImplementation<GenericName, GenericParams>;
25
+ is(input: unknown): input is BodyController<GenericName, GenericParams>;
26
+ }
27
+ export declare function createBodyController<GenericName extends string, GenericParams extends BodyControllerParams>(name: GenericName): BodyControllerHandler<GenericName, GenericParams>;
28
+ export {};
@@ -0,0 +1,34 @@
1
+ import { createCoreLibKind } from '../../kind.mjs';
2
+ import { E } from '@duplojs/utils';
3
+
4
+ const bodyReaderKind = createCoreLibKind("body-reader");
5
+ const bodyReaderImplementationKind = createCoreLibKind("body-reader-implementation");
6
+ const bodyControllerKind = createCoreLibKind("body-controller");
7
+ const bodyControllerHandlerKind = createCoreLibKind("body-controller-handler");
8
+ function createBodyController(name) {
9
+ return bodyControllerHandlerKind.setTo({
10
+ name,
11
+ create(params) {
12
+ return bodyControllerKind.setTo({
13
+ name,
14
+ params,
15
+ tryToCreateReader(readerImplementation) {
16
+ if (bodyReaderImplementationKind.getValue(readerImplementation) !== name) {
17
+ return E.fail();
18
+ }
19
+ return E.success(bodyReaderKind.setTo({
20
+ read: (request) => readerImplementation.read(request, params),
21
+ }, name));
22
+ },
23
+ }, name);
24
+ },
25
+ createReaderImplementation(read) {
26
+ return bodyReaderImplementationKind.setTo({ read }, name);
27
+ },
28
+ is(input) {
29
+ return bodyControllerKind.has(input) && bodyControllerKind.getValue(input) === name;
30
+ },
31
+ });
32
+ }
33
+
34
+ export { createBodyController };
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+ var base = require('./base.cjs');
5
+
6
+ const FormDataBodyController = base.createBodyController("formData");
7
+ function controlBodyAsFormData(params) {
8
+ return FormDataBodyController.create({
9
+ maxFileQuantity: params.maxFileQuantity,
10
+ bodyMaxSize: params.bodyMaxSize && utils.stringToBytes(params.bodyMaxSize),
11
+ fileMaxSize: params.fileMaxSize && utils.stringToBytes(params.fileMaxSize),
12
+ mimeType: params.mimeType !== undefined
13
+ ? utils.toRegExp(params.mimeType)
14
+ : undefined,
15
+ maxBufferSize: params.maxBufferSize !== undefined
16
+ ? utils.stringToBytes(params.maxBufferSize)
17
+ : utils.stringToBytes("128kb"),
18
+ maxIndexArray: params.maxIndexArray !== undefined
19
+ ? params.maxIndexArray
20
+ : 500,
21
+ maxKeyLength: params.maxKeyLength !== undefined
22
+ ? params.maxKeyLength
23
+ : 500,
24
+ });
25
+ }
26
+
27
+ exports.FormDataBodyController = FormDataBodyController;
28
+ exports.controlBodyAsFormData = controlBodyAsFormData;
@@ -0,0 +1,22 @@
1
+ import { type BytesInString } from "@duplojs/utils";
2
+ import { type BodyControllerParams } from "./base";
3
+ export interface FormDataBodyReaderParams extends BodyControllerParams {
4
+ maxFileQuantity: number;
5
+ mimeType?: RegExp;
6
+ fileMaxSize?: number;
7
+ maxBufferSize: number;
8
+ maxIndexArray: number;
9
+ maxKeyLength: number;
10
+ }
11
+ export declare const FormDataBodyController: import("./base").BodyControllerHandler<"formData", FormDataBodyReaderParams>;
12
+ export type FormDataBodyController = typeof FormDataBodyController;
13
+ export interface ControlBodyAsFormDataParams {
14
+ maxFileQuantity: number;
15
+ mimeType?: string | string[] | RegExp;
16
+ bodyMaxSize?: number | BytesInString;
17
+ fileMaxSize?: number | BytesInString;
18
+ maxBufferSize?: number | BytesInString;
19
+ maxIndexArray?: number;
20
+ maxKeyLength?: number;
21
+ }
22
+ export declare function controlBodyAsFormData(params: ControlBodyAsFormDataParams): import("./base").BodyController<"formData", FormDataBodyReaderParams>;
@@ -0,0 +1,25 @@
1
+ import { stringToBytes, toRegExp } from '@duplojs/utils';
2
+ import { createBodyController } from './base.mjs';
3
+
4
+ const FormDataBodyController = createBodyController("formData");
5
+ function controlBodyAsFormData(params) {
6
+ return FormDataBodyController.create({
7
+ maxFileQuantity: params.maxFileQuantity,
8
+ bodyMaxSize: params.bodyMaxSize && stringToBytes(params.bodyMaxSize),
9
+ fileMaxSize: params.fileMaxSize && stringToBytes(params.fileMaxSize),
10
+ mimeType: params.mimeType !== undefined
11
+ ? toRegExp(params.mimeType)
12
+ : undefined,
13
+ maxBufferSize: params.maxBufferSize !== undefined
14
+ ? stringToBytes(params.maxBufferSize)
15
+ : stringToBytes("128kb"),
16
+ maxIndexArray: params.maxIndexArray !== undefined
17
+ ? params.maxIndexArray
18
+ : 500,
19
+ maxKeyLength: params.maxKeyLength !== undefined
20
+ ? params.maxKeyLength
21
+ : 500,
22
+ });
23
+ }
24
+
25
+ export { FormDataBodyController, controlBodyAsFormData };
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var base = require('./base.cjs');
4
+ var formData = require('./formData.cjs');
5
+ var text = require('./text.cjs');
6
+
7
+
8
+
9
+ exports.createBodyController = base.createBodyController;
10
+ exports.FormDataBodyController = formData.FormDataBodyController;
11
+ exports.controlBodyAsFormData = formData.controlBodyAsFormData;
12
+ exports.TextBodyController = text.TextBodyController;
13
+ exports.controlBodyAsText = text.controlBodyAsText;
@@ -0,0 +1,3 @@
1
+ export * from "./base";
2
+ export * from "./formData";
3
+ export * from "./text";
@@ -0,0 +1,3 @@
1
+ export { createBodyController } from './base.mjs';
2
+ export { FormDataBodyController, controlBodyAsFormData } from './formData.mjs';
3
+ export { TextBodyController, controlBodyAsText } from './text.mjs';
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+ var base = require('./base.cjs');
5
+
6
+ const TextBodyController = base.createBodyController("text");
7
+ function controlBodyAsText(params) {
8
+ return TextBodyController.create({
9
+ bodyMaxSize: params?.bodyMaxSize && utils.stringToBytes(params.bodyMaxSize),
10
+ });
11
+ }
12
+
13
+ exports.TextBodyController = TextBodyController;
14
+ exports.controlBodyAsText = controlBodyAsText;
@@ -0,0 +1,10 @@
1
+ import { type BytesInString } from "@duplojs/utils";
2
+ import { type BodyControllerParams } from "./base";
3
+ export interface TextBodyReaderParams extends BodyControllerParams {
4
+ }
5
+ export declare const TextBodyController: import("./base").BodyControllerHandler<"text", TextBodyReaderParams>;
6
+ export type TextBodyController = typeof TextBodyController;
7
+ export interface ControlBodyAsTextParams {
8
+ bodyMaxSize?: number | BytesInString;
9
+ }
10
+ export declare function controlBodyAsText(params?: ControlBodyAsTextParams): import("./base").BodyController<"text", TextBodyReaderParams>;
@@ -0,0 +1,11 @@
1
+ import { stringToBytes } from '@duplojs/utils';
2
+ import { createBodyController } from './base.mjs';
3
+
4
+ const TextBodyController = createBodyController("text");
5
+ function controlBodyAsText(params) {
6
+ return TextBodyController.create({
7
+ bodyMaxSize: params?.bodyMaxSize && stringToBytes(params.bodyMaxSize),
8
+ });
9
+ }
10
+
11
+ export { TextBodyController, controlBodyAsText };
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var utils = require('@duplojs/utils');
4
- var kind = require('./kind.cjs');
4
+ var kind = require('../kind.cjs');
5
+ require('./bodyController/index.cjs');
5
6
 
6
7
  class Request extends utils.kindHeritage("request", kind.createCoreLibKind("request")) {
7
8
  method;
@@ -13,8 +14,10 @@ class Request extends utils.kindHeritage("request", kind.createCoreLibKind("requ
13
14
  params;
14
15
  query;
15
16
  matchedPath;
16
- body = undefined;
17
- constructor({ method, headers, url, host, origin, path, params, query, matchedPath, ...rest }) {
17
+ bodyReader;
18
+ bodyResult = undefined;
19
+ filesAttache = undefined;
20
+ constructor({ method, headers, url, host, origin, path, params, query, matchedPath, bodyReader, ...rest }) {
18
21
  super();
19
22
  this.method = method;
20
23
  this.headers = headers;
@@ -25,10 +28,25 @@ class Request extends utils.kindHeritage("request", kind.createCoreLibKind("requ
25
28
  this.params = params;
26
29
  this.query = query;
27
30
  this.matchedPath = matchedPath;
31
+ this.bodyReader = bodyReader;
28
32
  for (const key in rest) {
29
33
  this[key] = rest[key];
30
34
  }
31
35
  }
36
+ getBody() {
37
+ if (this.bodyResult !== undefined) {
38
+ return this.bodyResult;
39
+ }
40
+ const externalPromise = utils.createExternalPromise();
41
+ this.bodyResult = externalPromise.promise;
42
+ return this.bodyReader
43
+ .read(this)
44
+ .then((result) => {
45
+ externalPromise.resolve(result);
46
+ this.bodyResult = result;
47
+ return result;
48
+ });
49
+ }
32
50
  }
33
51
 
34
52
  exports.Request = Request;
@@ -1,8 +1,12 @@
1
+ import { type E, type MaybePromise } from "@duplojs/utils";
1
2
  import { type GetPropsWithValue } from "@duplojs/utils/object";
3
+ import { type BodyReader } from "./bodyController";
4
+ export * from "./bodyController";
2
5
  export interface RequestMethodsWrapper {
3
6
  GET: true;
4
7
  POST: true;
5
8
  PUT: true;
9
+ PATCH: true;
6
10
  DELETE: true;
7
11
  HEAD: true;
8
12
  OPTIONS: true;
@@ -20,6 +24,7 @@ export interface RequestInitializationData {
20
24
  readonly path: string;
21
25
  readonly query: Record<string, string | string[]>;
22
26
  readonly url: string;
27
+ readonly bodyReader: BodyReader;
23
28
  }
24
29
  declare const Request_base: new (params?: {
25
30
  "@DuplojsHttpCore/request"?: unknown;
@@ -34,7 +39,9 @@ export declare class Request extends Request_base implements RequestInitializati
34
39
  params: Record<string, string>;
35
40
  query: Record<string, string | string[]>;
36
41
  matchedPath: string | null;
37
- body: unknown;
38
- constructor({ method, headers, url, host, origin, path, params, query, matchedPath, ...rest }: RequestInitializationData);
42
+ bodyReader: BodyReader;
43
+ private bodyResult?;
44
+ filesAttache: string[] | undefined;
45
+ constructor({ method, headers, url, host, origin, path, params, query, matchedPath, bodyReader, ...rest }: RequestInitializationData);
46
+ getBody(): MaybePromise<E.Success | E.Error>;
39
47
  }
40
- export {};
@@ -0,0 +1,50 @@
1
+ import { kindHeritage, createExternalPromise } from '@duplojs/utils';
2
+ import { createCoreLibKind } from '../kind.mjs';
3
+ import './bodyController/index.mjs';
4
+
5
+ class Request extends kindHeritage("request", createCoreLibKind("request")) {
6
+ method;
7
+ headers;
8
+ url;
9
+ host;
10
+ origin;
11
+ path;
12
+ params;
13
+ query;
14
+ matchedPath;
15
+ bodyReader;
16
+ bodyResult = undefined;
17
+ filesAttache = undefined;
18
+ constructor({ method, headers, url, host, origin, path, params, query, matchedPath, bodyReader, ...rest }) {
19
+ super();
20
+ this.method = method;
21
+ this.headers = headers;
22
+ this.url = url;
23
+ this.host = host;
24
+ this.origin = origin;
25
+ this.path = path;
26
+ this.params = params;
27
+ this.query = query;
28
+ this.matchedPath = matchedPath;
29
+ this.bodyReader = bodyReader;
30
+ for (const key in rest) {
31
+ this[key] = rest[key];
32
+ }
33
+ }
34
+ getBody() {
35
+ if (this.bodyResult !== undefined) {
36
+ return this.bodyResult;
37
+ }
38
+ const externalPromise = createExternalPromise();
39
+ this.bodyResult = externalPromise.promise;
40
+ return this.bodyReader
41
+ .read(this)
42
+ .then((result) => {
43
+ externalPromise.resolve(result);
44
+ this.bodyResult = result;
45
+ return result;
46
+ });
47
+ }
48
+ }
49
+
50
+ export { Request };
@@ -283,7 +283,7 @@ export declare namespace ResponseContract {
283
283
  }>>(information: GenericInformation, schema?: (GenericSchema & ForbiddenBigintDataParser<GenericSchema>) | undefined) => NoInfer<Contract<"511", GenericInformation, NeverCoalescing<GenericSchema, DP.DataParserEmpty<DP.DataParserDefinitionEmpty>>>>;
284
284
  const Error_base: new (params: {
285
285
  "@DuplojsHttpCore/contract-error"?: unknown;
286
- }, parentParams: readonly [message?: string | undefined, options?: ErrorOptions | undefined]) => Kind<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/contract-error", unknown>, unknown> & Kind<import("@duplojs/utils").KindDefinition<"contract-error", unknown>, unknown> & globalThis.Error;
286
+ }, parentParams: readonly [message?: string | undefined, options?: ErrorOptions | undefined]) => globalThis.Error & Kind<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/contract-error", unknown>, unknown> & Kind<import("@duplojs/utils").KindDefinition<"contract-error", unknown>, unknown>;
287
287
  export class Error extends Error_base {
288
288
  information: string;
289
289
  dataParserError?: DP.DataParserError | undefined;
@@ -20,7 +20,6 @@ export interface RouteHookParams<GenericRequest extends Request = Request> {
20
20
  response<GenericCode extends ResponseCode = ResponseCode, GenericInformation extends string = string, GenericBody extends unknown = unknown>(code: GenericCode, information: GenericInformation, body?: GenericBody): HookResponse<GenericCode, GenericInformation, GenericBody | undefined>;
21
21
  }
22
22
  export type HookBeforeRouteExecution<GenericRequest extends Request = Request> = (params: RouteHookParams<GenericRequest>) => MaybePromise<HookResponse | RouteHookExit | RouteHookNext>;
23
- export type HookParseBody<GenericRequest extends Request = Request> = (params: RouteHookParams<GenericRequest>) => MaybePromise<HookResponse | RouteHookExit | RouteHookNext>;
24
23
  export interface RouteHookErrorParams<GenericRequest extends Request = Request> {
25
24
  readonly request: GenericRequest;
26
25
  readonly error: unknown;
@@ -41,7 +40,6 @@ export type HookAfterSendResponse<GenericRequest extends Request = Request> = (p
41
40
  export interface HookRouteLifeCycle<GenericRequest extends Request = Request> {
42
41
  onConstructRequest?: HookOnConstructRequest<GenericRequest>;
43
42
  beforeRouteExecution?: HookBeforeRouteExecution<GenericRequest>;
44
- parseBody?: HookParseBody<GenericRequest>;
45
43
  error?: HookError;
46
44
  beforeSendResponse?: HookBeforeSendResponse<GenericRequest>;
47
45
  sendResponse?: HookSendResponse<GenericRequest>;
@@ -1,5 +1,5 @@
1
1
  import { type O, type Kind } from "@duplojs/utils";
2
- import { type RequestMethods } from "../request";
2
+ import { type BodyController, type RequestMethods } from "../request";
3
3
  import { type ExtractStep, type CheckerStep, type CutStep, type HandlerStep, type ProcessStep, type stepKind, type PresetCheckerStep } from "../steps";
4
4
  import { type HookRouteLifeCycle } from "./hooks";
5
5
  import { type Metadata } from "../metadata";
@@ -19,6 +19,7 @@ export interface RouteDefinition {
19
19
  readonly steps: readonly RouteSteps[];
20
20
  readonly hooks: readonly HookRouteLifeCycle[];
21
21
  readonly metadata: readonly Metadata[];
22
+ readonly bodyController: BodyController | null;
22
23
  }
23
24
  export declare const routeKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/route", unknown>>;
24
25
  export interface Route<GenericDefinition extends RouteDefinition = RouteDefinition> extends Kind<typeof routeKind.definition> {