exisjs 0.7.5 → 0.7.7

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 (321) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +12 -0
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/clean.d.ts +5 -0
  5. package/dist/cli/commands/clean.d.ts.map +1 -0
  6. package/dist/cli/commands/clean.js +30 -0
  7. package/dist/cli/commands/clean.js.map +1 -0
  8. package/dist/cli/commands/dev.d.ts.map +1 -1
  9. package/dist/cli/commands/dev.js +171 -86
  10. package/dist/cli/commands/dev.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +6 -1
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +57 -2
  14. package/dist/cli/commands/generate.js.map +1 -1
  15. package/dist/cli/commands/start.d.ts.map +1 -1
  16. package/dist/cli/commands/start.js +54 -16
  17. package/dist/cli/commands/start.js.map +1 -1
  18. package/dist/cli/index.js +26 -3
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/manifest.d.ts +1 -0
  21. package/dist/cli/manifest.d.ts.map +1 -1
  22. package/dist/cli/manifest.js +264 -33
  23. package/dist/cli/manifest.js.map +1 -1
  24. package/dist/cli/resolve-aliases.d.ts +1 -1
  25. package/dist/cli/resolve-aliases.d.ts.map +1 -1
  26. package/dist/cli/resolve-aliases.js +30 -13
  27. package/dist/cli/resolve-aliases.js.map +1 -1
  28. package/dist/config/config.d.ts +3 -1
  29. package/dist/config/config.d.ts.map +1 -1
  30. package/dist/config/config.js +9 -0
  31. package/dist/config/config.js.map +1 -1
  32. package/dist/config/types.d.ts +6 -0
  33. package/dist/config/types.d.ts.map +1 -1
  34. package/dist/cron/expressions.d.ts +45 -0
  35. package/dist/cron/expressions.d.ts.map +1 -0
  36. package/dist/cron/expressions.js +87 -0
  37. package/dist/cron/expressions.js.map +1 -0
  38. package/dist/cron/index.d.ts +6 -0
  39. package/dist/cron/index.d.ts.map +1 -0
  40. package/dist/cron/index.js +22 -0
  41. package/dist/cron/index.js.map +1 -0
  42. package/dist/cron/job.d.ts +50 -0
  43. package/dist/cron/job.d.ts.map +1 -0
  44. package/dist/cron/job.js +247 -0
  45. package/dist/cron/job.js.map +1 -0
  46. package/dist/cron/manager.d.ts +105 -0
  47. package/dist/cron/manager.d.ts.map +1 -0
  48. package/dist/cron/manager.js +245 -0
  49. package/dist/cron/manager.js.map +1 -0
  50. package/dist/cron/parser.d.ts +22 -0
  51. package/dist/cron/parser.d.ts.map +1 -0
  52. package/dist/cron/parser.js +269 -0
  53. package/dist/cron/parser.js.map +1 -0
  54. package/dist/cron/types.d.ts +76 -0
  55. package/dist/cron/types.d.ts.map +1 -0
  56. package/dist/cron/types.js +3 -0
  57. package/dist/cron/types.js.map +1 -0
  58. package/dist/decorators/constants.d.ts +2 -0
  59. package/dist/decorators/constants.d.ts.map +1 -1
  60. package/dist/decorators/constants.js +3 -1
  61. package/dist/decorators/constants.js.map +1 -1
  62. package/dist/decorators/core.d.ts +29 -11
  63. package/dist/decorators/core.d.ts.map +1 -1
  64. package/dist/decorators/core.js +49 -11
  65. package/dist/decorators/core.js.map +1 -1
  66. package/dist/decorators/cron.d.ts +57 -0
  67. package/dist/decorators/cron.d.ts.map +1 -0
  68. package/dist/decorators/cron.js +143 -0
  69. package/dist/decorators/cron.js.map +1 -0
  70. package/dist/decorators/index.d.ts +2 -0
  71. package/dist/decorators/index.d.ts.map +1 -1
  72. package/dist/decorators/index.js +2 -0
  73. package/dist/decorators/index.js.map +1 -1
  74. package/dist/decorators/middleware.d.ts +65 -2
  75. package/dist/decorators/middleware.d.ts.map +1 -1
  76. package/dist/decorators/middleware.js +148 -62
  77. package/dist/decorators/middleware.js.map +1 -1
  78. package/dist/decorators/params.d.ts +102 -2
  79. package/dist/decorators/params.d.ts.map +1 -1
  80. package/dist/decorators/params.js +105 -3
  81. package/dist/decorators/params.js.map +1 -1
  82. package/dist/decorators/response.d.ts.map +1 -1
  83. package/dist/decorators/response.js +32 -22
  84. package/dist/decorators/response.js.map +1 -1
  85. package/dist/decorators/routing.d.ts +81 -16
  86. package/dist/decorators/routing.d.ts.map +1 -1
  87. package/dist/decorators/routing.js +81 -16
  88. package/dist/decorators/routing.js.map +1 -1
  89. package/dist/di/container.d.ts.map +1 -1
  90. package/dist/di/container.js +6 -1
  91. package/dist/di/container.js.map +1 -1
  92. package/dist/docs/content/cli/commands.mdx +1 -1
  93. package/dist/docs/content/controllers.mdx +127 -10
  94. package/dist/docs/content/cron.mdx +196 -0
  95. package/dist/docs/content/decorators.mdx +22 -4
  96. package/dist/docs/content/errors.mdx +58 -9
  97. package/dist/docs/content/introduction.mdx +7 -7
  98. package/dist/docs/content/middleware.mdx +269 -6
  99. package/dist/docs/content/requests.mdx +180 -6
  100. package/dist/docs/content/responses.mdx +283 -32
  101. package/dist/docs/content/routing.mdx +46 -0
  102. package/dist/docs/content/swagger.mdx +228 -0
  103. package/dist/docs/content/validation.mdx +190 -11
  104. package/dist/docs/reference/context.mdx +11 -0
  105. package/dist/docs/reference/cron.mdx +300 -0
  106. package/dist/docs/reference/decorators.mdx +22 -4
  107. package/dist/docs/reference/error.mdx +88 -0
  108. package/dist/docs/reference/logger.mdx +175 -43
  109. package/dist/docs/reference/middleware.mdx +31 -0
  110. package/dist/docs/reference/router.mdx +22 -0
  111. package/dist/docs/reference/swagger.mdx +143 -0
  112. package/dist/docs/reference/validator.mdx +83 -23
  113. package/dist/error/errors.d.ts.map +1 -1
  114. package/dist/error/errors.js +95 -43
  115. package/dist/error/errors.js.map +1 -1
  116. package/dist/error/index.d.ts +1 -0
  117. package/dist/error/index.d.ts.map +1 -1
  118. package/dist/error/index.js +11 -1
  119. package/dist/error/index.js.map +1 -1
  120. package/dist/error/overlay.d.ts +42 -0
  121. package/dist/error/overlay.d.ts.map +1 -0
  122. package/dist/error/overlay.js +306 -0
  123. package/dist/error/overlay.js.map +1 -0
  124. package/dist/index.d.ts +1 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +22 -1
  127. package/dist/index.js.map +1 -1
  128. package/dist/lib/start-server.js +33 -7
  129. package/dist/lib/start-server.js.map +1 -1
  130. package/dist/logger/index.d.ts +1 -1
  131. package/dist/logger/index.d.ts.map +1 -1
  132. package/dist/logger/index.js +9 -1
  133. package/dist/logger/index.js.map +1 -1
  134. package/dist/middleware/guard.d.ts +2 -2
  135. package/dist/middleware/guard.d.ts.map +1 -1
  136. package/dist/middleware/guard.js.map +1 -1
  137. package/dist/middleware/ip-filter.d.ts +1 -0
  138. package/dist/middleware/ip-filter.d.ts.map +1 -1
  139. package/dist/middleware/ip-filter.js +2 -0
  140. package/dist/middleware/ip-filter.js.map +1 -1
  141. package/dist/middleware/middleware.d.ts +2 -2
  142. package/dist/middleware/middleware.d.ts.map +1 -1
  143. package/dist/middleware/middleware.js +20 -2
  144. package/dist/middleware/middleware.js.map +1 -1
  145. package/dist/middleware/security.d.ts +43 -1
  146. package/dist/middleware/security.d.ts.map +1 -1
  147. package/dist/middleware/security.js +101 -0
  148. package/dist/middleware/security.js.map +1 -1
  149. package/dist/response/index.d.ts +229 -6
  150. package/dist/response/index.d.ts.map +1 -1
  151. package/dist/response/index.js +272 -2
  152. package/dist/response/index.js.map +1 -1
  153. package/dist/router/boundary.d.ts +41 -11
  154. package/dist/router/boundary.d.ts.map +1 -1
  155. package/dist/router/boundary.js +24 -2
  156. package/dist/router/boundary.js.map +1 -1
  157. package/dist/router/controller-registrar.d.ts.map +1 -1
  158. package/dist/router/controller-registrar.js +108 -4
  159. package/dist/router/controller-registrar.js.map +1 -1
  160. package/dist/router/index.d.ts +2 -2
  161. package/dist/router/index.d.ts.map +1 -1
  162. package/dist/router/index.js +2 -1
  163. package/dist/router/index.js.map +1 -1
  164. package/dist/router/route-builder.d.ts +262 -65
  165. package/dist/router/route-builder.d.ts.map +1 -1
  166. package/dist/router/route-builder.js +181 -23
  167. package/dist/router/route-builder.js.map +1 -1
  168. package/dist/router/route-scanner.d.ts +6 -0
  169. package/dist/router/route-scanner.d.ts.map +1 -1
  170. package/dist/router/route-scanner.js +71 -792
  171. package/dist/router/route-scanner.js.map +1 -1
  172. package/dist/router/router.d.ts.map +1 -1
  173. package/dist/router/router.js +62 -17
  174. package/dist/router/router.js.map +1 -1
  175. package/dist/router/scanner/boundary-loader.d.ts +18 -0
  176. package/dist/router/scanner/boundary-loader.d.ts.map +1 -0
  177. package/dist/router/scanner/boundary-loader.js +539 -0
  178. package/dist/router/scanner/boundary-loader.js.map +1 -0
  179. package/dist/router/scanner/cron-mounter.d.ts +15 -0
  180. package/dist/router/scanner/cron-mounter.d.ts.map +1 -0
  181. package/dist/router/scanner/cron-mounter.js +216 -0
  182. package/dist/router/scanner/cron-mounter.js.map +1 -0
  183. package/dist/router/scanner/error-mounter.d.ts +14 -0
  184. package/dist/router/scanner/error-mounter.d.ts.map +1 -0
  185. package/dist/router/scanner/error-mounter.js +200 -0
  186. package/dist/router/scanner/error-mounter.js.map +1 -0
  187. package/dist/router/scanner/fs-scanner.d.ts +25 -0
  188. package/dist/router/scanner/fs-scanner.d.ts.map +1 -0
  189. package/dist/router/scanner/fs-scanner.js +115 -0
  190. package/dist/router/scanner/fs-scanner.js.map +1 -0
  191. package/dist/router/scanner/functional-compiler.d.ts +9 -0
  192. package/dist/router/scanner/functional-compiler.d.ts.map +1 -0
  193. package/dist/router/scanner/functional-compiler.js +233 -0
  194. package/dist/router/scanner/functional-compiler.js.map +1 -0
  195. package/dist/router/scanner/index.d.ts +9 -0
  196. package/dist/router/scanner/index.d.ts.map +1 -0
  197. package/dist/router/scanner/index.js +19 -0
  198. package/dist/router/scanner/index.js.map +1 -0
  199. package/dist/router/types.d.ts +23 -0
  200. package/dist/router/types.d.ts.map +1 -1
  201. package/dist/server/app.d.ts +3 -0
  202. package/dist/server/app.d.ts.map +1 -1
  203. package/dist/server/app.js +13 -0
  204. package/dist/server/app.js.map +1 -1
  205. package/dist/server/bootstrapper.d.ts.map +1 -1
  206. package/dist/server/bootstrapper.js +91 -30
  207. package/dist/server/bootstrapper.js.map +1 -1
  208. package/dist/server/cluster.d.ts.map +1 -1
  209. package/dist/server/cluster.js +13 -2
  210. package/dist/server/cluster.js.map +1 -1
  211. package/dist/server/context.d.ts +8 -0
  212. package/dist/server/context.d.ts.map +1 -1
  213. package/dist/server/context.js +50 -6
  214. package/dist/server/context.js.map +1 -1
  215. package/dist/server/helpers/body-parser.d.ts +18 -0
  216. package/dist/server/helpers/body-parser.d.ts.map +1 -0
  217. package/dist/server/helpers/body-parser.js +246 -0
  218. package/dist/server/helpers/body-parser.js.map +1 -0
  219. package/dist/server/helpers/cookie.d.ts +4 -0
  220. package/dist/server/helpers/cookie.d.ts.map +1 -0
  221. package/dist/server/helpers/cookie.js +61 -0
  222. package/dist/server/helpers/cookie.js.map +1 -0
  223. package/dist/server/helpers/etag.d.ts +3 -0
  224. package/dist/server/helpers/etag.d.ts.map +1 -0
  225. package/dist/server/helpers/etag.js +25 -0
  226. package/dist/server/helpers/etag.js.map +1 -0
  227. package/dist/server/helpers/index.d.ts +6 -0
  228. package/dist/server/helpers/index.d.ts.map +1 -0
  229. package/dist/server/helpers/index.js +21 -0
  230. package/dist/server/helpers/index.js.map +1 -0
  231. package/dist/server/helpers/ip.d.ts +9 -0
  232. package/dist/server/helpers/ip.d.ts.map +1 -0
  233. package/dist/server/helpers/ip.js +62 -0
  234. package/dist/server/helpers/ip.js.map +1 -0
  235. package/dist/server/helpers/stream.d.ts +4 -0
  236. package/dist/server/helpers/stream.d.ts.map +1 -0
  237. package/dist/server/helpers/stream.js +193 -0
  238. package/dist/server/helpers/stream.js.map +1 -0
  239. package/dist/server/lifecycle.d.ts +22 -0
  240. package/dist/server/lifecycle.d.ts.map +1 -0
  241. package/dist/server/lifecycle.js +106 -0
  242. package/dist/server/lifecycle.js.map +1 -0
  243. package/dist/server/request-handler.d.ts +1 -0
  244. package/dist/server/request-handler.d.ts.map +1 -1
  245. package/dist/server/request-handler.js +27 -17
  246. package/dist/server/request-handler.js.map +1 -1
  247. package/dist/server/request.d.ts +1 -139
  248. package/dist/server/request.d.ts.map +1 -1
  249. package/dist/server/request.js +37 -433
  250. package/dist/server/request.js.map +1 -1
  251. package/dist/server/response.d.ts +112 -156
  252. package/dist/server/response.d.ts.map +1 -1
  253. package/dist/server/response.js +129 -279
  254. package/dist/server/response.js.map +1 -1
  255. package/dist/swagger/decorators.d.ts +81 -0
  256. package/dist/swagger/decorators.d.ts.map +1 -0
  257. package/dist/swagger/decorators.js +172 -0
  258. package/dist/swagger/decorators.js.map +1 -0
  259. package/dist/swagger/generator.d.ts +19 -0
  260. package/dist/swagger/generator.d.ts.map +1 -0
  261. package/dist/swagger/generator.js +344 -0
  262. package/dist/swagger/generator.js.map +1 -0
  263. package/dist/swagger/index.d.ts +31 -0
  264. package/dist/swagger/index.d.ts.map +1 -0
  265. package/dist/swagger/index.js +53 -0
  266. package/dist/swagger/index.js.map +1 -0
  267. package/dist/swagger/mounter.d.ts +7 -0
  268. package/dist/swagger/mounter.d.ts.map +1 -0
  269. package/dist/swagger/mounter.js +56 -0
  270. package/dist/swagger/mounter.js.map +1 -0
  271. package/dist/swagger/types.d.ts +190 -0
  272. package/dist/swagger/types.d.ts.map +1 -0
  273. package/dist/swagger/types.js +3 -0
  274. package/dist/swagger/types.js.map +1 -0
  275. package/dist/swagger/ui.d.ts +6 -0
  276. package/dist/swagger/ui.d.ts.map +1 -0
  277. package/dist/swagger/ui.js +118 -0
  278. package/dist/swagger/ui.js.map +1 -0
  279. package/dist/testing/index.d.ts.map +1 -1
  280. package/dist/testing/index.js +6 -1
  281. package/dist/testing/index.js.map +1 -1
  282. package/dist/testing/mocks.d.ts.map +1 -1
  283. package/dist/testing/mocks.js +15 -3
  284. package/dist/testing/mocks.js.map +1 -1
  285. package/dist/utils/logger.d.ts +8 -0
  286. package/dist/utils/logger.d.ts.map +1 -1
  287. package/dist/utils/logger.js +184 -1
  288. package/dist/utils/logger.js.map +1 -1
  289. package/dist/validator/builder.d.ts +223 -0
  290. package/dist/validator/builder.d.ts.map +1 -0
  291. package/dist/validator/builder.js +517 -0
  292. package/dist/validator/builder.js.map +1 -0
  293. package/dist/validator/engine.d.ts +19 -0
  294. package/dist/validator/engine.d.ts.map +1 -0
  295. package/dist/validator/engine.js +568 -0
  296. package/dist/validator/engine.js.map +1 -0
  297. package/dist/validator/error.d.ts +12 -0
  298. package/dist/validator/error.d.ts.map +1 -0
  299. package/dist/validator/error.js +63 -0
  300. package/dist/validator/error.js.map +1 -0
  301. package/dist/validator/pagination.d.ts +40 -0
  302. package/dist/validator/pagination.d.ts.map +1 -0
  303. package/dist/validator/pagination.js +60 -0
  304. package/dist/validator/pagination.js.map +1 -0
  305. package/dist/validator/tex-types.d.ts +2 -1
  306. package/dist/validator/tex-types.d.ts.map +1 -1
  307. package/dist/validator/tex-types.js +2 -1
  308. package/dist/validator/tex-types.js.map +1 -1
  309. package/dist/validator/tex.d.ts +6 -142
  310. package/dist/validator/tex.d.ts.map +1 -1
  311. package/dist/validator/tex.js +14 -733
  312. package/dist/validator/tex.js.map +1 -1
  313. package/dist/validator/types.d.ts +83 -0
  314. package/dist/validator/types.d.ts.map +1 -0
  315. package/dist/validator/types.js +3 -0
  316. package/dist/validator/types.js.map +1 -0
  317. package/package.json +8 -4
  318. package/dist/dev/error-overlay.d.ts +0 -3
  319. package/dist/dev/error-overlay.d.ts.map +0 -1
  320. package/dist/dev/error-overlay.js +0 -118
  321. package/dist/dev/error-overlay.js.map +0 -1
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.parseRawBody = parseRawBody;
37
+ exports.parseMultipartFormData = parseMultipartFormData;
38
+ exports.streamMultipartUpload = streamMultipartUpload;
39
+ const errors_1 = require("../../error/errors");
40
+ const rs_1 = require("@exisjs/rs");
41
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
42
+ const busboy = require('busboy');
43
+ async function parseRawBody(raw, bodyLimit, contentType, method) {
44
+ if (['GET', 'HEAD', 'OPTIONS'].includes(method) ||
45
+ contentType.includes('multipart/form-data')) {
46
+ return '';
47
+ }
48
+ if (typeof raw.readBody === 'function') {
49
+ const buf = await raw.readBody(bodyLimit);
50
+ return buf ? buf.toString('utf8') : '';
51
+ }
52
+ return new Promise((resolve, reject) => {
53
+ let settled = false;
54
+ const chunks = [];
55
+ let size = 0;
56
+ const onData = (chunk) => {
57
+ if (settled)
58
+ return;
59
+ size += chunk.length;
60
+ if (size > bodyLimit) {
61
+ raw.destroy?.();
62
+ done(errors_1.HttpError.payloadTooLarge(`Request body exceeds limit of ${bodyLimit} bytes. Configure 'bodyLimit' in 'exis.config.ts' to allow larger payloads.`));
63
+ return;
64
+ }
65
+ chunks.push(chunk);
66
+ };
67
+ const onError = (err) => done(err);
68
+ const onAborted = () => done(new Error('Request aborted by client'));
69
+ const onClose = () => {
70
+ const isComplete = Boolean(raw.complete || raw.readableEnded);
71
+ if (!settled && !isComplete) {
72
+ done(new Error('Request closed prematurely'));
73
+ }
74
+ };
75
+ const onEnd = () => {
76
+ if (settled)
77
+ return;
78
+ const rawBody = Buffer.concat(chunks).toString('utf8');
79
+ done(undefined, rawBody);
80
+ };
81
+ const cleanup = () => {
82
+ raw.removeListener('data', onData);
83
+ raw.removeListener('error', onError);
84
+ raw.removeListener('aborted', onAborted);
85
+ raw.removeListener('close', onClose);
86
+ raw.removeListener('end', onEnd);
87
+ };
88
+ const done = (err, result) => {
89
+ if (settled)
90
+ return;
91
+ settled = true;
92
+ cleanup();
93
+ if (err)
94
+ reject(err);
95
+ else
96
+ resolve(result ?? '');
97
+ };
98
+ const contentLengthStr = raw.headers['content-length'];
99
+ if (contentLengthStr) {
100
+ const contentLength = parseInt(contentLengthStr, 10);
101
+ if (!isNaN(contentLength) && contentLength > bodyLimit) {
102
+ done(errors_1.HttpError.payloadTooLarge(`Request body exceeds limit of ${bodyLimit} bytes. Configure 'bodyLimit' in 'exis.config.ts' to allow larger payloads.`));
103
+ return;
104
+ }
105
+ }
106
+ raw.on('data', onData);
107
+ raw.on('error', onError);
108
+ raw.on('aborted', onAborted);
109
+ raw.on('close', onClose);
110
+ raw.on('end', onEnd);
111
+ });
112
+ }
113
+ function parseMultipartFormData(raw, bodyLimit, filesContainer) {
114
+ return new Promise((resolve, reject) => {
115
+ const fields = {};
116
+ try {
117
+ const bb = busboy({
118
+ headers: raw.headers,
119
+ limits: { fileSize: bodyLimit },
120
+ });
121
+ const cleanup = () => {
122
+ raw.removeListener('close', onRawClose);
123
+ raw.removeListener('aborted', onRawClose);
124
+ };
125
+ const onRawClose = () => {
126
+ const isComplete = Boolean(raw.complete || raw.readableEnded);
127
+ if (!isComplete) {
128
+ try {
129
+ ;
130
+ bb.destroy?.();
131
+ }
132
+ catch {
133
+ /* noop */
134
+ }
135
+ cleanup();
136
+ reject(errors_1.HttpError.badRequest('Client disconnected prematurely during multipart upload'));
137
+ }
138
+ };
139
+ raw.once('close', onRawClose);
140
+ raw.once('aborted', onRawClose);
141
+ bb.on('field', (name, val) => {
142
+ fields[name] = val;
143
+ });
144
+ bb.on('file', (name, fileStream, info) => {
145
+ const chunks = [];
146
+ let size = 0;
147
+ fileStream.on('data', (data) => {
148
+ chunks.push(data);
149
+ size += data.length;
150
+ });
151
+ fileStream.on('end', () => {
152
+ const data = Buffer.concat(chunks);
153
+ const filename = info.filename || 'unknown';
154
+ filesContainer.push({
155
+ fieldname: name,
156
+ filename: filename,
157
+ mimetype: info.mimeType || 'application/octet-stream',
158
+ data,
159
+ size,
160
+ saveToDisk: async (destDir) => {
161
+ const fs = await Promise.resolve().then(() => __importStar(require('node:fs/promises')));
162
+ const path = await Promise.resolve().then(() => __importStar(require('node:path')));
163
+ await fs.mkdir(destDir, { recursive: true });
164
+ const ext = path.extname(filename);
165
+ const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
166
+ const finalName = `${name}-${uniqueSuffix}${ext}`;
167
+ const destPath = path.join(destDir, finalName);
168
+ await fs.writeFile(destPath, data);
169
+ return destPath;
170
+ },
171
+ });
172
+ });
173
+ });
174
+ bb.on('finish', () => {
175
+ cleanup();
176
+ resolve({
177
+ fields,
178
+ files: filesContainer,
179
+ });
180
+ });
181
+ bb.on('error', (err) => {
182
+ cleanup();
183
+ reject(err);
184
+ });
185
+ raw.pipe(bb);
186
+ }
187
+ catch (err) {
188
+ reject(errors_1.HttpError.badRequest(err.message || 'Failed to parse multipart data'));
189
+ }
190
+ });
191
+ }
192
+ async function streamMultipartUpload(raw, destDir) {
193
+ const fs = await Promise.resolve().then(() => __importStar(require('node:fs')));
194
+ const path = await Promise.resolve().then(() => __importStar(require('node:path')));
195
+ await fs.promises.mkdir(destDir, { recursive: true });
196
+ return new Promise((resolve, reject) => {
197
+ const fields = {};
198
+ const streamedFiles = [];
199
+ try {
200
+ const bb = busboy({ headers: raw.headers });
201
+ bb.on('field', (name, val) => {
202
+ fields[name] = val;
203
+ });
204
+ bb.on('file', (name, fileStream, info) => {
205
+ const filename = info.filename || 'unknown';
206
+ const ext = path.extname(filename);
207
+ const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
208
+ const finalName = `${name}-${uniqueSuffix}${ext}`;
209
+ const destPath = path.join(destDir, finalName);
210
+ const writeStream = fs.createWriteStream(destPath);
211
+ let size = 0;
212
+ fileStream.on('data', (data) => {
213
+ size += data.length;
214
+ });
215
+ fileStream.pipe(writeStream);
216
+ fileStream.on('end', () => {
217
+ streamedFiles.push({
218
+ fieldname: name,
219
+ filename,
220
+ mimetype: info.mimeType || 'application/octet-stream',
221
+ destPath,
222
+ size,
223
+ });
224
+ });
225
+ });
226
+ bb.on('finish', () => {
227
+ resolve({
228
+ fields: (0, rs_1.stripPrototype)(fields),
229
+ files: streamedFiles,
230
+ });
231
+ });
232
+ bb.on('error', reject);
233
+ if (typeof raw.pipe === 'function') {
234
+ raw.pipe(bb);
235
+ }
236
+ else {
237
+ raw.on('data', (chunk) => bb.write(chunk));
238
+ raw.on('end', () => bb.end());
239
+ }
240
+ }
241
+ catch (err) {
242
+ reject(errors_1.HttpError.badRequest(err.message || 'Failed to stream multipart data'));
243
+ }
244
+ });
245
+ }
246
+ //# sourceMappingURL=body-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../../src/server/helpers/body-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CookieOptions } from '../../types';
2
+ export declare function serializeCookie(name: string, value: string, options?: CookieOptions): string;
3
+ export declare function serializeClearCookie(name: string, options?: CookieOptions): string;
4
+ //# sourceMappingURL=cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/server/helpers/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAqCR;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAQR"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeCookie = serializeCookie;
4
+ exports.serializeClearCookie = serializeClearCookie;
5
+ function serializeCookie(name, value, options = {}) {
6
+ const parts = [
7
+ `${encodeURIComponent(name)}=${encodeURIComponent(value)}`,
8
+ ];
9
+ if (options.maxAge !== undefined)
10
+ parts.push(`Max-Age=${options.maxAge}`);
11
+ if (options.expires)
12
+ parts.push(`Expires=${options.expires.toUTCString()}`);
13
+ if (options.path ?? true)
14
+ parts.push(`Path=${options.path ?? '/'}`);
15
+ if (options.domain)
16
+ parts.push(`Domain=${options.domain}`);
17
+ if (options.httpOnly)
18
+ parts.push('HttpOnly');
19
+ if (options.secure)
20
+ parts.push('Secure');
21
+ if (options.sameSite !== undefined && options.sameSite !== false) {
22
+ if (options.sameSite === true) {
23
+ parts.push('SameSite=Strict');
24
+ }
25
+ else {
26
+ const str = String(options.sameSite).toLowerCase();
27
+ if (str === 'strict')
28
+ parts.push('SameSite=Strict');
29
+ else if (str === 'lax')
30
+ parts.push('SameSite=Lax');
31
+ else if (str === 'none') {
32
+ parts.push('SameSite=None');
33
+ if (!options.secure && !parts.includes('Secure')) {
34
+ parts.push('Secure');
35
+ }
36
+ }
37
+ }
38
+ }
39
+ if (options.partitioned)
40
+ parts.push('Partitioned');
41
+ if (options.priority) {
42
+ const p = options.priority.toLowerCase();
43
+ if (p === 'low')
44
+ parts.push('Priority=Low');
45
+ else if (p === 'medium')
46
+ parts.push('Priority=Medium');
47
+ else if (p === 'high')
48
+ parts.push('Priority=High');
49
+ }
50
+ return parts.join('; ');
51
+ }
52
+ function serializeClearCookie(name, options = {}) {
53
+ const { maxAge: _, expires: __, ...rest } = options;
54
+ return serializeCookie(name, '', {
55
+ httpOnly: true,
56
+ ...rest,
57
+ expires: new Date(0),
58
+ maxAge: 0,
59
+ });
60
+ }
61
+ //# sourceMappingURL=cookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/server/helpers/cookie.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function generateETag(content: Buffer): string;
2
+ export declare function nativeStringify(data: unknown): Buffer | string;
3
+ //# sourceMappingURL=etag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"etag.d.ts","sourceRoot":"","sources":["../../../src/server/helpers/etag.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAe9D"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateETag = generateETag;
4
+ exports.nativeStringify = nativeStringify;
5
+ const rs_1 = require("@exisjs/rs");
6
+ function generateETag(content) {
7
+ return (0, rs_1.generateEtag)(content);
8
+ }
9
+ function nativeStringify(data) {
10
+ if (data === null || data === undefined) {
11
+ return 'null';
12
+ }
13
+ // If native rust serialization is available, use it
14
+ if (typeof rs_1.fastJsonStringifyBuffer === 'function') {
15
+ // Validate object can be serialized without throwing V8 check failure on circularity
16
+ const str = JSON.stringify(data);
17
+ if (str.length > 512) {
18
+ // For larger payloads, Rust serde serialization into Buffer gives zero V8 GC overhead
19
+ return (0, rs_1.fastJsonStringifyBuffer)(data);
20
+ }
21
+ return str;
22
+ }
23
+ return JSON.stringify(data);
24
+ }
25
+ //# sourceMappingURL=etag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"etag.js","sourceRoot":"","sources":["../../../src/server/helpers/etag.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAED,0CAeC;AArBD,mCAAkE;AAElE,SAAgB,YAAY,CAAC,OAAe;IAC1C,OAAO,IAAA,iBAAY,EAAC,OAAO,CAAC,CAAA;AAC9B,CAAC;AAED,SAAgB,eAAe,CAAC,IAAa;IAC3C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,MAAM,CAAA;IACf,CAAC;IACD,oDAAoD;IACpD,IAAI,OAAO,4BAAuB,KAAK,UAAU,EAAE,CAAC;QAClD,qFAAqF;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACrB,sFAAsF;YACtF,OAAO,IAAA,4BAAuB,EAAC,IAAI,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { normalizeIp, resolveIps, resolveProtocol, resolveHostname } from './ip';
2
+ export { parseRawBody, parseMultipartFormData, streamMultipartUpload, } from './body-parser';
3
+ export { serializeCookie, serializeClearCookie } from './cookie';
4
+ export { generateETag, nativeStringify } from './etag';
5
+ export { streamToResponse } from './stream';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAEhF,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.streamToResponse = exports.nativeStringify = exports.generateETag = exports.serializeClearCookie = exports.serializeCookie = exports.streamMultipartUpload = exports.parseMultipartFormData = exports.parseRawBody = exports.resolveHostname = exports.resolveProtocol = exports.resolveIps = exports.normalizeIp = void 0;
4
+ var ip_1 = require("./ip");
5
+ Object.defineProperty(exports, "normalizeIp", { enumerable: true, get: function () { return ip_1.normalizeIp; } });
6
+ Object.defineProperty(exports, "resolveIps", { enumerable: true, get: function () { return ip_1.resolveIps; } });
7
+ Object.defineProperty(exports, "resolveProtocol", { enumerable: true, get: function () { return ip_1.resolveProtocol; } });
8
+ Object.defineProperty(exports, "resolveHostname", { enumerable: true, get: function () { return ip_1.resolveHostname; } });
9
+ var body_parser_1 = require("./body-parser");
10
+ Object.defineProperty(exports, "parseRawBody", { enumerable: true, get: function () { return body_parser_1.parseRawBody; } });
11
+ Object.defineProperty(exports, "parseMultipartFormData", { enumerable: true, get: function () { return body_parser_1.parseMultipartFormData; } });
12
+ Object.defineProperty(exports, "streamMultipartUpload", { enumerable: true, get: function () { return body_parser_1.streamMultipartUpload; } });
13
+ var cookie_1 = require("./cookie");
14
+ Object.defineProperty(exports, "serializeCookie", { enumerable: true, get: function () { return cookie_1.serializeCookie; } });
15
+ Object.defineProperty(exports, "serializeClearCookie", { enumerable: true, get: function () { return cookie_1.serializeClearCookie; } });
16
+ var etag_1 = require("./etag");
17
+ Object.defineProperty(exports, "generateETag", { enumerable: true, get: function () { return etag_1.generateETag; } });
18
+ Object.defineProperty(exports, "nativeStringify", { enumerable: true, get: function () { return etag_1.nativeStringify; } });
19
+ var stream_1 = require("./stream");
20
+ Object.defineProperty(exports, "streamToResponse", { enumerable: true, get: function () { return stream_1.streamToResponse; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/helpers/index.ts"],"names":[],"mappings":";;;AAAA,2BAAgF;AAAvE,iGAAA,WAAW,OAAA;AAAE,gGAAA,UAAU,OAAA;AAAE,qGAAA,eAAe,OAAA;AAAE,qGAAA,eAAe,OAAA;AAElE,6CAIsB;AAHpB,2GAAA,YAAY,OAAA;AACZ,qHAAA,sBAAsB,OAAA;AACtB,oHAAA,qBAAqB,OAAA;AAGvB,mCAAgE;AAAvD,yGAAA,eAAe,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAE9C,+BAAsD;AAA7C,oGAAA,YAAY,OAAA;AAAE,uGAAA,eAAe,OAAA;AAEtC,mCAA2C;AAAlC,0GAAA,gBAAgB,OAAA"}
@@ -0,0 +1,9 @@
1
+ import type { IncomingMessage } from 'node:http';
2
+ export declare function normalizeIp(ip: string): string;
3
+ export declare function resolveIps(raw: IncomingMessage, trustProxy: boolean | number): {
4
+ ips: string[];
5
+ ip: string;
6
+ };
7
+ export declare function resolveProtocol(raw: IncomingMessage, trustProxy: boolean | number): string;
8
+ export declare function resolveHostname(raw: IncomingMessage, trustProxy: boolean | number): string;
9
+ //# sourceMappingURL=ip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip.d.ts","sourceRoot":"","sources":["../../../src/server/helpers/ip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQ9C;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,eAAe,EACpB,UAAU,EAAE,OAAO,GAAG,MAAM,GAC3B;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAuB/B;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,EACpB,UAAU,EAAE,OAAO,GAAG,MAAM,GAC3B,MAAM,CAeR;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,EACpB,UAAU,EAAE,OAAO,GAAG,MAAM,GAC3B,MAAM,CAWR"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeIp = normalizeIp;
4
+ exports.resolveIps = resolveIps;
5
+ exports.resolveProtocol = resolveProtocol;
6
+ exports.resolveHostname = resolveHostname;
7
+ function normalizeIp(ip) {
8
+ if (ip.startsWith('::ffff:')) {
9
+ return ip.substring(7);
10
+ }
11
+ if (ip === '::1') {
12
+ return '127.0.0.1';
13
+ }
14
+ return ip;
15
+ }
16
+ function resolveIps(raw, trustProxy) {
17
+ const xForwardedFor = raw.headers['x-forwarded-for'];
18
+ let ips = [];
19
+ if (xForwardedFor) {
20
+ const rawVal = Array.isArray(xForwardedFor)
21
+ ? xForwardedFor.join(',')
22
+ : xForwardedFor;
23
+ ips = rawVal.split(',').map((item) => normalizeIp(item.trim()));
24
+ }
25
+ const rawRemote = raw.socket?.remoteAddress ?? '127.0.0.1';
26
+ const remoteAddress = normalizeIp(rawRemote);
27
+ if (trustProxy) {
28
+ let trustedIps = ips;
29
+ if (typeof trustProxy === 'number' && trustProxy > 0) {
30
+ trustedIps = ips.slice(-(trustProxy + 1));
31
+ }
32
+ const ip = trustedIps.length > 0 ? trustedIps[0] : remoteAddress;
33
+ return { ips: trustedIps, ip };
34
+ }
35
+ return { ips: [], ip: remoteAddress };
36
+ }
37
+ function resolveProtocol(raw, trustProxy) {
38
+ const connection = raw.socket;
39
+ const isTls = connection?.encrypted || false;
40
+ let protocol = isTls ? 'https' : 'http';
41
+ const xForwardedProto = raw.headers['x-forwarded-proto'];
42
+ if (trustProxy && xForwardedProto) {
43
+ const rawProto = Array.isArray(xForwardedProto)
44
+ ? xForwardedProto.join(',')
45
+ : xForwardedProto;
46
+ protocol = rawProto.split(',')[0].trim();
47
+ }
48
+ return protocol;
49
+ }
50
+ function resolveHostname(raw, trustProxy) {
51
+ let host = raw.headers['x-forwarded-host'];
52
+ if (!host || !trustProxy) {
53
+ host = raw.headers.host || '';
54
+ }
55
+ if (Array.isArray(host))
56
+ host = host[0];
57
+ // IPv6 can have colons, so look for port after bracket or last colon
58
+ const offset = host[0] === '[' ? host.indexOf(']') + 1 : 0;
59
+ const index = host.indexOf(':', offset);
60
+ return index !== -1 ? host.substring(0, index) : host;
61
+ }
62
+ //# sourceMappingURL=ip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip.js","sourceRoot":"","sources":["../../../src/server/helpers/ip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ServerResponse } from 'node:http';
2
+ import type { Request as IRequest } from '../../types';
3
+ export declare function streamToResponse(resRaw: ServerResponse, readable: NodeJS.ReadableStream | ReadableStream | AsyncIterable<any>, isWritable: boolean, headersSent: boolean, hasHeader: (name: string) => boolean, setHeader: (name: string, val: string) => void, setStatusCode: (code: number) => void, endFn: (data?: any) => void, req?: IRequest): void;
4
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/server/helpers/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGtD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,CAAC,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,EACrE,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACpC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC9C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACrC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,EAC3B,GAAG,CAAC,EAAE,QAAQ,GACb,IAAI,CAyLN"}