@duplojs/http 0.6.2 → 0.7.1

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 (174) 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/queryToString.cjs +2 -2
  9. package/dist/client/queryToString.mjs +2 -2
  10. package/dist/client/types/clientRequestParams.d.ts +9 -3
  11. package/dist/client/types/clientResponse.d.ts +6 -6
  12. package/dist/client/types/hooks.d.ts +25 -0
  13. package/dist/client/types/index.cjs +2 -0
  14. package/dist/client/types/index.d.ts +2 -0
  15. package/dist/client/types/index.mjs +2 -0
  16. package/dist/client/types/promiseRequestParams.cjs +2 -0
  17. package/dist/client/types/promiseRequestParams.d.ts +9 -0
  18. package/dist/client/types/promiseRequestParams.mjs +1 -0
  19. package/dist/client/types/serverRoute.d.ts +28 -4
  20. package/dist/client/unexpectedResponseError.d.ts +1 -2
  21. package/dist/core/builders/preflight/route.cjs +1 -0
  22. package/dist/core/builders/preflight/route.d.ts +4 -2
  23. package/dist/core/builders/preflight/route.mjs +1 -0
  24. package/dist/core/builders/route/builder.cjs +1 -0
  25. package/dist/core/builders/route/builder.d.ts +4 -2
  26. package/dist/core/builders/route/builder.mjs +1 -0
  27. package/dist/core/clean/newType.d.ts +1 -1
  28. package/dist/core/clean/primitive.d.ts +1 -1
  29. package/dist/core/defaultHooks/index.cjs +50 -0
  30. package/dist/core/defaultHooks/index.d.ts +5 -0
  31. package/dist/core/defaultHooks/index.mjs +48 -0
  32. package/dist/{interfaces/node/error → core/errors}/bodyParseWrongChunkReceived.cjs +6 -4
  33. package/dist/core/errors/bodyParseWrongChunkReceived.d.ts +9 -0
  34. package/dist/core/errors/bodyParseWrongChunkReceived.mjs +14 -0
  35. package/dist/{interfaces/node/error → core/errors}/bodySizeExceedsLimitError.cjs +2 -2
  36. package/dist/{interfaces/node/error → core/errors}/bodySizeExceedsLimitError.d.ts +2 -2
  37. package/dist/{interfaces/node/error → core/errors}/bodySizeExceedsLimitError.mjs +2 -2
  38. package/dist/{interfaces/node/error → core/errors}/index.cjs +6 -4
  39. package/dist/{interfaces/node/error → core/errors}/index.d.ts +3 -2
  40. package/dist/{interfaces/node/error → core/errors}/index.mjs +3 -2
  41. package/dist/core/errors/parseJsonError.cjs +16 -0
  42. package/dist/core/errors/parseJsonError.d.ts +9 -0
  43. package/dist/core/errors/parseJsonError.mjs +14 -0
  44. package/dist/core/errors/wrongContentTypeError.cjs +16 -0
  45. package/dist/core/errors/wrongContentTypeError.d.ts +9 -0
  46. package/dist/core/errors/wrongContentTypeError.mjs +14 -0
  47. package/dist/core/functionsBuilders/route/create.d.ts +2 -2
  48. package/dist/core/functionsBuilders/route/default.cjs +0 -11
  49. package/dist/core/functionsBuilders/route/default.mjs +0 -11
  50. package/dist/core/functionsBuilders/route/hook.d.ts +2 -2
  51. package/dist/core/functionsBuilders/steps/create.d.ts +2 -2
  52. package/dist/core/functionsBuilders/steps/defaults/cutStep.cjs +15 -18
  53. package/dist/core/functionsBuilders/steps/defaults/cutStep.mjs +15 -18
  54. package/dist/core/functionsBuilders/steps/defaults/extractStep.cjs +43 -19
  55. package/dist/core/functionsBuilders/steps/defaults/extractStep.d.ts +2 -1
  56. package/dist/core/functionsBuilders/steps/defaults/extractStep.mjs +44 -20
  57. package/dist/core/functionsBuilders/steps/defaults/handlerStep.cjs +14 -8
  58. package/dist/core/functionsBuilders/steps/defaults/handlerStep.mjs +14 -8
  59. package/dist/core/hub/defaultBodyController.cjs +8 -0
  60. package/dist/core/hub/defaultBodyController.d.ts +1 -0
  61. package/dist/core/hub/defaultBodyController.mjs +6 -0
  62. package/dist/core/hub/hooks.cjs +3 -1
  63. package/dist/core/hub/hooks.d.ts +2 -3
  64. package/dist/core/hub/hooks.mjs +3 -1
  65. package/dist/core/hub/index.cjs +101 -127
  66. package/dist/core/hub/index.d.ts +33 -34
  67. package/dist/core/hub/index.mjs +100 -128
  68. package/dist/core/implementHttpServer.cjs +5 -5
  69. package/dist/core/implementHttpServer.d.ts +2 -1
  70. package/dist/core/implementHttpServer.mjs +5 -5
  71. package/dist/core/index.cjs +34 -10
  72. package/dist/core/index.d.ts +2 -0
  73. package/dist/core/index.mjs +13 -2
  74. package/dist/core/request/bodyController/base.cjs +36 -0
  75. package/dist/core/request/bodyController/base.d.ts +28 -0
  76. package/dist/core/request/bodyController/base.mjs +34 -0
  77. package/dist/core/request/bodyController/formData.cjs +28 -0
  78. package/dist/core/request/bodyController/formData.d.ts +22 -0
  79. package/dist/core/request/bodyController/formData.mjs +25 -0
  80. package/dist/core/request/bodyController/index.cjs +13 -0
  81. package/dist/core/request/bodyController/index.d.ts +3 -0
  82. package/dist/core/request/bodyController/index.mjs +3 -0
  83. package/dist/core/request/bodyController/text.cjs +14 -0
  84. package/dist/core/request/bodyController/text.d.ts +10 -0
  85. package/dist/core/request/bodyController/text.mjs +11 -0
  86. package/dist/core/{request.cjs → request/index.cjs} +21 -3
  87. package/dist/core/{request.d.ts → request/index.d.ts} +10 -3
  88. package/dist/core/request/index.mjs +50 -0
  89. package/dist/core/response/contract.d.ts +1 -1
  90. package/dist/core/route/hooks.d.ts +0 -2
  91. package/dist/core/route/index.d.ts +2 -1
  92. package/dist/core/router/index.cjs +27 -8
  93. package/dist/core/router/index.d.ts +2 -1
  94. package/dist/core/router/index.mjs +28 -10
  95. package/dist/core/router/notFoundBodyReaderImplementationError.cjs +16 -0
  96. package/dist/core/router/notFoundBodyReaderImplementationError.d.ts +11 -0
  97. package/dist/core/router/notFoundBodyReaderImplementationError.mjs +14 -0
  98. package/dist/core/router/types/buildedRouter.d.ts +3 -3
  99. package/dist/core/steps/extract.d.ts +3 -1
  100. package/dist/core/steps/types/steps.d.ts +1 -3
  101. package/dist/core/types/hosts.cjs +2 -0
  102. package/dist/core/types/hosts.d.ts +4 -0
  103. package/dist/core/types/hosts.mjs +1 -0
  104. package/dist/core/types/httpServerParams.cjs +2 -0
  105. package/dist/core/types/httpServerParams.d.ts +11 -0
  106. package/dist/core/types/httpServerParams.mjs +1 -0
  107. package/dist/core/types/index.cjs +2 -0
  108. package/dist/core/types/index.d.ts +2 -0
  109. package/dist/core/types/index.mjs +2 -0
  110. package/dist/interfaces/bun/types/request.cjs +1 -1
  111. package/dist/interfaces/bun/types/request.mjs +1 -1
  112. package/dist/interfaces/node/bodyReaders/formData/error.cjs +14 -0
  113. package/dist/interfaces/node/bodyReaders/formData/error.d.ts +8 -0
  114. package/dist/interfaces/node/bodyReaders/formData/error.mjs +12 -0
  115. package/dist/interfaces/node/bodyReaders/formData/index.cjs +94 -0
  116. package/dist/interfaces/node/bodyReaders/formData/index.d.ts +4 -0
  117. package/dist/interfaces/node/bodyReaders/formData/index.mjs +90 -0
  118. package/dist/interfaces/node/bodyReaders/formData/readRequestFormData.cjs +175 -0
  119. package/dist/interfaces/node/bodyReaders/formData/readRequestFormData.d.ts +21 -0
  120. package/dist/interfaces/node/bodyReaders/formData/readRequestFormData.mjs +173 -0
  121. package/dist/interfaces/node/bodyReaders/index.cjs +9 -0
  122. package/dist/interfaces/node/bodyReaders/index.d.ts +2 -0
  123. package/dist/interfaces/node/bodyReaders/index.mjs +2 -0
  124. package/dist/interfaces/node/bodyReaders/text/index.cjs +41 -0
  125. package/dist/interfaces/node/bodyReaders/text/index.d.ts +3 -0
  126. package/dist/interfaces/node/bodyReaders/text/index.mjs +38 -0
  127. package/dist/interfaces/node/bodyReaders/text/readRequestText.cjs +37 -0
  128. package/dist/interfaces/node/bodyReaders/text/readRequestText.d.ts +6 -0
  129. package/dist/interfaces/node/bodyReaders/text/readRequestText.mjs +35 -0
  130. package/dist/interfaces/node/createHttpServer.cjs +13 -5
  131. package/dist/interfaces/node/createHttpServer.d.ts +13 -12
  132. package/dist/interfaces/node/createHttpServer.mjs +13 -5
  133. package/dist/interfaces/node/hooks/index.cjs +47 -0
  134. package/dist/interfaces/node/hooks/index.d.ts +5 -0
  135. package/dist/interfaces/node/hooks/index.mjs +45 -0
  136. package/dist/interfaces/node/index.cjs +13 -9
  137. package/dist/interfaces/node/index.d.ts +1 -1
  138. package/dist/interfaces/node/index.mjs +7 -5
  139. package/dist/interfaces/node/types/index.cjs +0 -1
  140. package/dist/interfaces/node/types/index.d.ts +0 -1
  141. package/dist/interfaces/node/types/index.mjs +0 -1
  142. package/dist/interfaces/node/types/request.cjs +1 -1
  143. package/dist/interfaces/node/types/request.mjs +1 -1
  144. package/dist/plugins/codeGenerator/index.cjs +2 -0
  145. package/dist/plugins/codeGenerator/index.mjs +1 -1
  146. package/dist/plugins/codeGenerator/plugin.cjs +11 -4
  147. package/dist/plugins/codeGenerator/plugin.mjs +12 -5
  148. package/dist/plugins/codeGenerator/routeToDataParser.cjs +24 -1
  149. package/dist/plugins/codeGenerator/routeToDataParser.d.ts +34 -0
  150. package/dist/plugins/codeGenerator/routeToDataParser.mjs +24 -3
  151. package/dist/plugins/codeGenerator/typescriptTransfomer.cjs +28 -0
  152. package/dist/plugins/codeGenerator/typescriptTransfomer.d.ts +4 -0
  153. package/dist/plugins/codeGenerator/typescriptTransfomer.mjs +24 -0
  154. package/dist/plugins/openApiGenerator/makeOpenApiRoute.d.ts +3 -0
  155. package/dist/plugins/openApiGenerator/plugin.cjs +3 -3
  156. package/dist/plugins/openApiGenerator/plugin.mjs +4 -4
  157. package/dist/plugins/openApiGenerator/routeToOpenApi.cjs +16 -6
  158. package/dist/plugins/openApiGenerator/routeToOpenApi.d.ts +10 -1
  159. package/dist/plugins/openApiGenerator/routeToOpenApi.mjs +16 -6
  160. package/dist/plugins/openApiGenerator/types/entrypoint.d.ts +6 -1
  161. package/dist/plugins/openApiGenerator/types/openApiMethod.d.ts +1 -1
  162. package/package.json +5 -6
  163. package/dist/core/request.mjs +0 -32
  164. package/dist/interfaces/node/error/bodyParseUnknownError.cjs +0 -16
  165. package/dist/interfaces/node/error/bodyParseUnknownError.d.ts +0 -9
  166. package/dist/interfaces/node/error/bodyParseUnknownError.mjs +0 -14
  167. package/dist/interfaces/node/error/bodyParseWrongChunkReceived.d.ts +0 -8
  168. package/dist/interfaces/node/error/bodyParseWrongChunkReceived.mjs +0 -12
  169. package/dist/interfaces/node/hooks.cjs +0 -126
  170. package/dist/interfaces/node/hooks.d.ts +0 -8
  171. package/dist/interfaces/node/hooks.mjs +0 -124
  172. package/dist/interfaces/node/types/host.d.ts +0 -4
  173. /package/dist/{interfaces/node/types/host.cjs → client/types/hooks.cjs} +0 -0
  174. /package/dist/{interfaces/node/types/host.mjs → client/types/hooks.mjs} +0 -0
@@ -1,124 +0,0 @@
1
- import '../../core/route/index.mjs';
2
- import { stringToBytes } from '@duplojs/utils';
3
- import './error/index.mjs';
4
- import '../../core/response/index.mjs';
5
- import { createHookRouteLifeCycle } from '../../core/route/hooks.mjs';
6
- import { PredictedResponse } from '../../core/response/predicted.mjs';
7
- import { HookResponse } from '../../core/response/hook.mjs';
8
- import { BodySizeExceedsLimitError } from './error/bodySizeExceedsLimitError.mjs';
9
- import { BodyParseWrongChunkReceived } from './error/bodyParseWrongChunkReceived.mjs';
10
- import { BodyParseUnknownError } from './error/bodyParseUnknownError.mjs';
11
-
12
- function makeNodeHook(hub, serverParams) {
13
- const informationHeaderKey = serverParams.informationHeaderKey;
14
- const predictedHeaderKey = serverParams.predictedHeaderKey;
15
- const fromHookHeaderKey = serverParams.fromHookHeaderKey;
16
- const isDev = hub.config.environment === "DEV";
17
- const maxBodySize = stringToBytes(serverParams.maxBodySize);
18
- return createHookRouteLifeCycle({
19
- async parseBody({ request, exit }) {
20
- const contentType = request.headers["content-type"] instanceof Array
21
- ? request.headers["content-type"].join(", ")
22
- : request.headers["content-type"] ?? "";
23
- const isText = contentType.includes("text/plain");
24
- const isJson = contentType.includes("application/json");
25
- if (!isText && !isJson) {
26
- return exit();
27
- }
28
- const { request: rawRequest } = request.raw;
29
- request.body = await new Promise((resolve, reject) => {
30
- function errorCallback(error) {
31
- if (error instanceof BodySizeExceedsLimitError
32
- || error instanceof BodyParseWrongChunkReceived) {
33
- reject(error);
34
- return;
35
- }
36
- reject(new BodyParseUnknownError(contentType, error));
37
- }
38
- let stringBody = "";
39
- let byteLengthBody = 0;
40
- rawRequest.on("error", errorCallback);
41
- rawRequest.on("data", (chunk) => {
42
- if (!(chunk instanceof Buffer) && typeof chunk !== "string") {
43
- rawRequest.emit("error", new BodyParseWrongChunkReceived(chunk));
44
- return;
45
- }
46
- byteLengthBody += chunk instanceof Buffer
47
- ? chunk.byteLength
48
- : Buffer.byteLength(chunk);
49
- if (byteLengthBody > maxBodySize) {
50
- rawRequest.emit("error", new BodySizeExceedsLimitError(serverParams.maxBodySize));
51
- return;
52
- }
53
- stringBody += chunk.toString();
54
- });
55
- rawRequest.on("end", () => {
56
- try {
57
- resolve(isText
58
- ? stringBody
59
- : JSON.parse(stringBody));
60
- }
61
- catch (error) {
62
- errorCallback(error);
63
- }
64
- });
65
- });
66
- return exit();
67
- },
68
- error({ error, response, exit }) {
69
- const displayedError = isDev ? error : undefined;
70
- if (error instanceof BodySizeExceedsLimitError) {
71
- return response("400", "body-size-exceeds-limit-error", displayedError);
72
- }
73
- else if (error instanceof BodyParseWrongChunkReceived) {
74
- return response("400", "body-parse-wrong-chunk-received", displayedError);
75
- }
76
- else if (error instanceof BodyParseUnknownError) {
77
- return response("400", "body-parse-unknown-error", displayedError);
78
- }
79
- return exit();
80
- },
81
- beforeSendResponse({ request, currentResponse, exit }) {
82
- if (!currentResponse.headers?.["content-type"]) {
83
- const body = currentResponse.body;
84
- if (typeof body === "string"
85
- || body instanceof Error) {
86
- currentResponse.setHeader("content-type", "text/plain; charset=utf-8");
87
- }
88
- else if (typeof body === "object"
89
- || typeof body === "number"
90
- || typeof body === "boolean") {
91
- currentResponse.setHeader("content-type", "application/json; charset=utf-8");
92
- }
93
- }
94
- currentResponse.setHeader(informationHeaderKey, currentResponse.information);
95
- if (currentResponse instanceof PredictedResponse) {
96
- currentResponse.setHeader(predictedHeaderKey, "1");
97
- }
98
- else if (currentResponse instanceof HookResponse) {
99
- currentResponse.setHeader(fromHookHeaderKey, currentResponse.fromHook);
100
- }
101
- request.raw.response.writeHead(Number(currentResponse.code), currentResponse.headers);
102
- return exit();
103
- },
104
- sendResponse({ request, currentResponse, exit }) {
105
- const { response: rawResponse } = request.raw;
106
- const body = currentResponse.body;
107
- if (body instanceof Error) {
108
- rawResponse.write(body.toString());
109
- }
110
- else if (typeof body === "object"
111
- || typeof body === "number"
112
- || typeof body === "boolean") {
113
- rawResponse.write(JSON.stringify(body));
114
- }
115
- else if (typeof body === "string") {
116
- rawResponse.write(body);
117
- }
118
- rawResponse.end();
119
- return exit();
120
- },
121
- });
122
- }
123
-
124
- export { makeNodeHook };
@@ -1,4 +0,0 @@
1
- import { type O } from "@duplojs/utils";
2
- export interface HostCustom {
3
- }
4
- export type Hosts = (HostCustom[O.GetPropsWithValue<HostCustom, true>] | "::" | "0.0.0.0" | "localhost" | "127.0.0.1" | "::1");