exisjs 0.7.4 → 0.7.6

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 (197) hide show
  1. package/dist/cli/commands/build.d.ts +4 -2
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +80 -22
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/dev.d.ts.map +1 -1
  6. package/dist/cli/commands/dev.js +229 -64
  7. package/dist/cli/commands/dev.js.map +1 -1
  8. package/dist/cli/commands/doctor.d.ts.map +1 -1
  9. package/dist/cli/commands/doctor.js +5 -2
  10. package/dist/cli/commands/doctor.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +1 -0
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +25 -0
  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 +65 -15
  17. package/dist/cli/commands/start.js.map +1 -1
  18. package/dist/cli/index.js +20 -4
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/manifest.d.ts.map +1 -1
  21. package/dist/cli/manifest.js +118 -17
  22. package/dist/cli/manifest.js.map +1 -1
  23. package/dist/cli/resolve-aliases.d.ts +1 -1
  24. package/dist/cli/resolve-aliases.d.ts.map +1 -1
  25. package/dist/cli/resolve-aliases.js +30 -13
  26. package/dist/cli/resolve-aliases.js.map +1 -1
  27. package/dist/config/config.d.ts +3 -1
  28. package/dist/config/config.d.ts.map +1 -1
  29. package/dist/config/config.js.map +1 -1
  30. package/dist/config/env.d.ts.map +1 -1
  31. package/dist/config/env.js +8 -0
  32. package/dist/config/env.js.map +1 -1
  33. package/dist/config/types.d.ts +2 -0
  34. package/dist/config/types.d.ts.map +1 -1
  35. package/dist/decorators/constants.d.ts +2 -0
  36. package/dist/decorators/constants.d.ts.map +1 -1
  37. package/dist/decorators/middleware.d.ts +65 -2
  38. package/dist/decorators/middleware.d.ts.map +1 -1
  39. package/dist/decorators/middleware.js +148 -62
  40. package/dist/decorators/middleware.js.map +1 -1
  41. package/dist/decorators/params.d.ts +5 -0
  42. package/dist/decorators/params.d.ts.map +1 -1
  43. package/dist/decorators/params.js +11 -1
  44. package/dist/decorators/params.js.map +1 -1
  45. package/dist/decorators/response.d.ts.map +1 -1
  46. package/dist/decorators/response.js +32 -22
  47. package/dist/decorators/response.js.map +1 -1
  48. package/dist/di/container.d.ts.map +1 -1
  49. package/dist/di/container.js +6 -1
  50. package/dist/di/container.js.map +1 -1
  51. package/dist/docs/content/boundaries.mdx +33 -3
  52. package/dist/docs/content/cli/commands.mdx +1 -1
  53. package/dist/docs/content/config.mdx +26 -0
  54. package/dist/docs/content/controllers.mdx +127 -10
  55. package/dist/docs/content/decorators.mdx +22 -4
  56. package/dist/docs/content/errors.mdx +38 -2
  57. package/dist/docs/content/introduction.mdx +7 -7
  58. package/dist/docs/content/middleware.mdx +269 -6
  59. package/dist/docs/content/requests.mdx +217 -10
  60. package/dist/docs/content/responses.mdx +323 -34
  61. package/dist/docs/content/routing.mdx +46 -0
  62. package/dist/docs/content/security.mdx +17 -4
  63. package/dist/docs/content/structure.mdx +91 -12
  64. package/dist/docs/content/validation.mdx +226 -11
  65. package/dist/docs/reference/context.mdx +11 -0
  66. package/dist/docs/reference/decorators.mdx +14 -4
  67. package/dist/docs/reference/error.mdx +44 -0
  68. package/dist/docs/reference/logger.mdx +175 -43
  69. package/dist/docs/reference/middleware.mdx +31 -0
  70. package/dist/docs/reference/router.mdx +22 -0
  71. package/dist/docs/reference/validator.mdx +83 -23
  72. package/dist/error/errors.d.ts.map +1 -1
  73. package/dist/error/errors.js +95 -43
  74. package/dist/error/errors.js.map +1 -1
  75. package/dist/error/index.d.ts +1 -0
  76. package/dist/error/index.d.ts.map +1 -1
  77. package/dist/error/index.js +11 -1
  78. package/dist/error/index.js.map +1 -1
  79. package/dist/error/overlay.d.ts +42 -0
  80. package/dist/error/overlay.d.ts.map +1 -0
  81. package/dist/error/overlay.js +306 -0
  82. package/dist/error/overlay.js.map +1 -0
  83. package/dist/index.d.ts +1 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +22 -1
  86. package/dist/index.js.map +1 -1
  87. package/dist/lib/start-server.js +49 -7
  88. package/dist/lib/start-server.js.map +1 -1
  89. package/dist/logger/index.d.ts +1 -1
  90. package/dist/logger/index.d.ts.map +1 -1
  91. package/dist/logger/index.js +9 -1
  92. package/dist/logger/index.js.map +1 -1
  93. package/dist/middleware/guard.d.ts +2 -2
  94. package/dist/middleware/guard.d.ts.map +1 -1
  95. package/dist/middleware/guard.js.map +1 -1
  96. package/dist/middleware/ip-filter.d.ts +1 -0
  97. package/dist/middleware/ip-filter.d.ts.map +1 -1
  98. package/dist/middleware/ip-filter.js +2 -0
  99. package/dist/middleware/ip-filter.js.map +1 -1
  100. package/dist/middleware/middleware.d.ts +2 -2
  101. package/dist/middleware/middleware.d.ts.map +1 -1
  102. package/dist/middleware/middleware.js +20 -2
  103. package/dist/middleware/middleware.js.map +1 -1
  104. package/dist/middleware/rate-limit.d.ts.map +1 -1
  105. package/dist/middleware/rate-limit.js +9 -0
  106. package/dist/middleware/rate-limit.js.map +1 -1
  107. package/dist/middleware/security.d.ts +43 -1
  108. package/dist/middleware/security.d.ts.map +1 -1
  109. package/dist/middleware/security.js +101 -0
  110. package/dist/middleware/security.js.map +1 -1
  111. package/dist/response/index.d.ts +229 -6
  112. package/dist/response/index.d.ts.map +1 -1
  113. package/dist/response/index.js +272 -2
  114. package/dist/response/index.js.map +1 -1
  115. package/dist/router/boundary.d.ts +25 -5
  116. package/dist/router/boundary.d.ts.map +1 -1
  117. package/dist/router/boundary.js.map +1 -1
  118. package/dist/router/controller-registrar.d.ts.map +1 -1
  119. package/dist/router/controller-registrar.js +56 -1
  120. package/dist/router/controller-registrar.js.map +1 -1
  121. package/dist/router/index.d.ts +2 -2
  122. package/dist/router/index.d.ts.map +1 -1
  123. package/dist/router/index.js +2 -1
  124. package/dist/router/index.js.map +1 -1
  125. package/dist/router/route-builder.d.ts +70 -36
  126. package/dist/router/route-builder.d.ts.map +1 -1
  127. package/dist/router/route-builder.js +13 -15
  128. package/dist/router/route-builder.js.map +1 -1
  129. package/dist/router/route-scanner.d.ts +1 -0
  130. package/dist/router/route-scanner.d.ts.map +1 -1
  131. package/dist/router/route-scanner.js +217 -10
  132. package/dist/router/route-scanner.js.map +1 -1
  133. package/dist/router/router.d.ts.map +1 -1
  134. package/dist/router/router.js +35 -17
  135. package/dist/router/router.js.map +1 -1
  136. package/dist/router/types.d.ts +11 -1
  137. package/dist/router/types.d.ts.map +1 -1
  138. package/dist/sanitize/index.d.ts +6 -6
  139. package/dist/sanitize/index.d.ts.map +1 -1
  140. package/dist/sanitize/index.js +8 -8
  141. package/dist/sanitize/index.js.map +1 -1
  142. package/dist/server/app.d.ts +2 -0
  143. package/dist/server/app.d.ts.map +1 -1
  144. package/dist/server/app.js +14 -0
  145. package/dist/server/app.js.map +1 -1
  146. package/dist/server/bootstrapper.d.ts.map +1 -1
  147. package/dist/server/bootstrapper.js +91 -30
  148. package/dist/server/bootstrapper.js.map +1 -1
  149. package/dist/server/cluster.d.ts.map +1 -1
  150. package/dist/server/cluster.js +13 -2
  151. package/dist/server/cluster.js.map +1 -1
  152. package/dist/server/context.d.ts +8 -0
  153. package/dist/server/context.d.ts.map +1 -1
  154. package/dist/server/context.js +50 -6
  155. package/dist/server/context.js.map +1 -1
  156. package/dist/server/engines/node-engine.d.ts.map +1 -1
  157. package/dist/server/engines/node-engine.js +1 -0
  158. package/dist/server/engines/node-engine.js.map +1 -1
  159. package/dist/server/lifecycle.d.ts +22 -0
  160. package/dist/server/lifecycle.d.ts.map +1 -0
  161. package/dist/server/lifecycle.js +106 -0
  162. package/dist/server/lifecycle.js.map +1 -0
  163. package/dist/server/request-handler.d.ts +1 -0
  164. package/dist/server/request-handler.d.ts.map +1 -1
  165. package/dist/server/request-handler.js +42 -18
  166. package/dist/server/request-handler.js.map +1 -1
  167. package/dist/server/request.d.ts +6 -0
  168. package/dist/server/request.d.ts.map +1 -1
  169. package/dist/server/request.js +112 -33
  170. package/dist/server/request.js.map +1 -1
  171. package/dist/server/response.d.ts +13 -2
  172. package/dist/server/response.d.ts.map +1 -1
  173. package/dist/server/response.js +250 -10
  174. package/dist/server/response.js.map +1 -1
  175. package/dist/testing/index.d.ts.map +1 -1
  176. package/dist/testing/index.js +6 -1
  177. package/dist/testing/index.js.map +1 -1
  178. package/dist/testing/mocks.d.ts.map +1 -1
  179. package/dist/testing/mocks.js +15 -3
  180. package/dist/testing/mocks.js.map +1 -1
  181. package/dist/utils/logger.d.ts +8 -0
  182. package/dist/utils/logger.d.ts.map +1 -1
  183. package/dist/utils/logger.js +184 -1
  184. package/dist/utils/logger.js.map +1 -1
  185. package/dist/validator/tex-types.d.ts +2 -1
  186. package/dist/validator/tex-types.d.ts.map +1 -1
  187. package/dist/validator/tex-types.js +2 -1
  188. package/dist/validator/tex-types.js.map +1 -1
  189. package/dist/validator/tex.d.ts +38 -22
  190. package/dist/validator/tex.d.ts.map +1 -1
  191. package/dist/validator/tex.js +490 -40
  192. package/dist/validator/tex.js.map +1 -1
  193. package/package.json +10 -10
  194. package/dist/dev/error-overlay.d.ts +0 -3
  195. package/dist/dev/error-overlay.d.ts.map +0 -1
  196. package/dist/dev/error-overlay.js +0 -118
  197. package/dist/dev/error-overlay.js.map +0 -1
@@ -1,16 +1,239 @@
1
- export type SuccessResponse<T> = {
1
+ /**
2
+ * Standard successful response envelope.
3
+ */
4
+ export type SuccessResponse<T = unknown, M = Record<string, unknown>> = {
2
5
  success: true;
3
- message?: string;
4
6
  data: T;
7
+ message?: string;
8
+ meta?: M;
5
9
  };
6
- export type ErrorResponse = {
10
+ /**
11
+ * Standard error response envelope.
12
+ */
13
+ export type ErrorResponse<E = unknown> = {
7
14
  success: false;
8
15
  error: {
9
16
  message: string;
10
17
  code?: string;
11
- details?: unknown;
18
+ status?: number;
19
+ details?: E;
20
+ [key: string]: unknown;
12
21
  };
13
22
  };
14
- export declare function success<T>(data: T, message?: string): SuccessResponse<T>;
15
- export declare function error(message: string, code?: string, details?: unknown): ErrorResponse;
23
+ /**
24
+ * Discriminated union of standard API response types.
25
+ */
26
+ export type ApiResponse<T = unknown, E = unknown, M = Record<string, unknown>> = SuccessResponse<T, M> | ErrorResponse<E>;
27
+ /**
28
+ * Pagination metadata included in paginated responses.
29
+ */
30
+ export interface PaginationMeta {
31
+ page: number;
32
+ limit: number;
33
+ total: number;
34
+ totalPages: number;
35
+ hasNextPage: boolean;
36
+ hasPrevPage: boolean;
37
+ hasNext: boolean;
38
+ hasPrev: boolean;
39
+ }
40
+ /**
41
+ * Standard paginated response envelope.
42
+ */
43
+ export interface PaginatedResponse<T = unknown, M = Record<string, unknown>> {
44
+ success: true;
45
+ data: T[];
46
+ pagination: PaginationMeta;
47
+ message?: string;
48
+ meta?: M;
49
+ }
50
+ /**
51
+ * RFC 7807 / RFC 9457 Problem Details object specification for HTTP APIs.
52
+ */
53
+ export interface ProblemDetails {
54
+ type?: string;
55
+ title: string;
56
+ status: number;
57
+ detail?: string;
58
+ instance?: string;
59
+ invalidParams?: {
60
+ name: string;
61
+ reason: string;
62
+ }[];
63
+ [key: string]: unknown;
64
+ }
65
+ /**
66
+ * HTTP response headers map.
67
+ */
68
+ export type ResponseHeaders = Record<string, string | number | readonly string[]>;
69
+ /**
70
+ * Standard HTTP Status Code Constants.
71
+ */
72
+ export declare const HttpStatus: {
73
+ readonly OK: 200;
74
+ readonly CREATED: 201;
75
+ readonly ACCEPTED: 202;
76
+ readonly NON_AUTHORITATIVE_INFORMATION: 203;
77
+ readonly NO_CONTENT: 204;
78
+ readonly RESET_CONTENT: 205;
79
+ readonly PARTIAL_CONTENT: 206;
80
+ readonly MULTIPLE_CHOICES: 300;
81
+ readonly MOVED_PERMANENTLY: 301;
82
+ readonly FOUND: 302;
83
+ readonly SEE_OTHER: 303;
84
+ readonly NOT_MODIFIED: 304;
85
+ readonly TEMPORARY_REDIRECT: 307;
86
+ readonly PERMANENT_REDIRECT: 308;
87
+ readonly BAD_REQUEST: 400;
88
+ readonly UNAUTHORIZED: 401;
89
+ readonly PAYMENT_REQUIRED: 402;
90
+ readonly FORBIDDEN: 403;
91
+ readonly NOT_FOUND: 404;
92
+ readonly METHOD_NOT_ALLOWED: 405;
93
+ readonly NOT_ACCEPTABLE: 406;
94
+ readonly PROXY_AUTHENTICATION_REQUIRED: 407;
95
+ readonly REQUEST_TIMEOUT: 408;
96
+ readonly CONFLICT: 409;
97
+ readonly GONE: 410;
98
+ readonly LENGTH_REQUIRED: 411;
99
+ readonly PRECONDITION_FAILED: 412;
100
+ readonly PAYLOAD_TOO_LARGE: 413;
101
+ readonly URI_TOO_LONG: 414;
102
+ readonly UNSUPPORTED_MEDIA_TYPE: 415;
103
+ readonly RANGE_NOT_SATISFIABLE: 416;
104
+ readonly EXPECTATION_FAILED: 417;
105
+ readonly IM_A_TEAPOT: 418;
106
+ readonly MISDIRECTED_REQUEST: 421;
107
+ readonly UNPROCESSABLE_ENTITY: 422;
108
+ readonly LOCKED: 423;
109
+ readonly FAILED_DEPENDENCY: 424;
110
+ readonly TOO_EARLY: 425;
111
+ readonly UPGRADE_REQUIRED: 426;
112
+ readonly PRECONDITION_REQUIRED: 428;
113
+ readonly TOO_MANY_REQUESTS: 429;
114
+ readonly REQUEST_HEADER_FIELDS_TOO_LARGE: 431;
115
+ readonly UNAVAILABLE_FOR_LEGAL_REASONS: 451;
116
+ readonly INTERNAL_SERVER_ERROR: 500;
117
+ readonly NOT_IMPLEMENTED: 501;
118
+ readonly BAD_GATEWAY: 502;
119
+ readonly SERVICE_UNAVAILABLE: 503;
120
+ readonly GATEWAY_TIMEOUT: 504;
121
+ readonly HTTP_VERSION_NOT_SUPPORTED: 505;
122
+ readonly VARIANT_ALSO_NEGOTIATES: 506;
123
+ readonly INSUFFICIENT_STORAGE: 507;
124
+ readonly LOOP_DETECTED: 508;
125
+ readonly NOT_EXTENDED: 510;
126
+ readonly NETWORK_AUTHENTICATION_REQUIRED: 511;
127
+ };
128
+ export type HttpStatusCode = (typeof HttpStatus)[keyof typeof HttpStatus];
129
+ /**
130
+ * Returns human-readable status text for a given HTTP status code.
131
+ */
132
+ export declare function getStatusText(status: number): string;
133
+ /**
134
+ * Determines whether a status code represents a 2xx success.
135
+ */
136
+ export declare function isSuccessStatus(status: number): boolean;
137
+ /**
138
+ * Determines whether a status code represents a 3xx redirection.
139
+ */
140
+ export declare function isRedirectStatus(status: number): boolean;
141
+ /**
142
+ * Determines whether a status code represents a 4xx client error.
143
+ */
144
+ export declare function isClientError(status: number): boolean;
145
+ /**
146
+ * Determines whether a status code represents a 5xx server error.
147
+ */
148
+ export declare function isServerError(status: number): boolean;
149
+ /**
150
+ * Creates a standard 200 OK success response envelope.
151
+ *
152
+ * @example
153
+ * return success(user, 'User profile retrieved successfully')
154
+ */
155
+ export declare function success<T, M = Record<string, unknown>>(data: T, message?: string, meta?: M): SuccessResponse<T, M>;
156
+ /**
157
+ * Creates a standard 201 Created response envelope.
158
+ *
159
+ * @example
160
+ * return created(newUser, 'User created successfully')
161
+ */
162
+ export declare function created<T, M = Record<string, unknown>>(data: T, message?: string, meta?: M): SuccessResponse<T, M>;
163
+ /**
164
+ * Creates a standard 202 Accepted response envelope for async background processing.
165
+ *
166
+ * @example
167
+ * return accepted({ jobId: '123' }, 'Job queued for background execution')
168
+ */
169
+ export declare function accepted<T = null, M = Record<string, unknown>>(data?: T, message?: string, meta?: M): SuccessResponse<T, M>;
170
+ /**
171
+ * Creates a standard 204 No Content response representation.
172
+ *
173
+ * @example
174
+ * return noContent()
175
+ */
176
+ export declare function noContent(): {
177
+ success: true;
178
+ data: null;
179
+ };
180
+ /**
181
+ * Creates a standard error response envelope.
182
+ *
183
+ * @example
184
+ * return error('Invalid credentials', 'AUTH_INVALID_CREDENTIALS', undefined, 401)
185
+ */
186
+ export declare function error<E = unknown>(message: string, code?: string, details?: E, status?: number): ErrorResponse<E>;
187
+ /**
188
+ * Creates a standardized RFC 7807 / RFC 9457 Problem Details object.
189
+ *
190
+ * @example
191
+ * return problem('Invalid Request Body', 422, 'The email field is invalid', {
192
+ * invalidParams: [{ name: 'email', reason: 'Must be a valid email format' }]
193
+ * })
194
+ */
195
+ export declare function problem(title: string, status: number, detail?: string, options?: Partial<ProblemDetails>): ProblemDetails;
196
+ /**
197
+ * Creates a standardized paginated response envelope.
198
+ *
199
+ * @example
200
+ * return paginate(users, totalCount, { page: 1, limit: 20 })
201
+ */
202
+ export declare function paginate<T, M = Record<string, unknown>>(data: T[], total: number, options?: {
203
+ page?: number;
204
+ limit?: number;
205
+ }, message?: string, meta?: M): PaginatedResponse<T, M>;
206
+ /**
207
+ * Calculates SQL/Database `skip` (offset) and `limit` from pagination query parameters.
208
+ *
209
+ * @example
210
+ * const { skip, limit, page } = getPaginationSkip(req.query)
211
+ * const users = await db.user.findMany({ skip, take: limit })
212
+ */
213
+ export declare function getPaginationSkip(query?: {
214
+ page?: number;
215
+ limit?: number;
216
+ }): {
217
+ skip: number;
218
+ limit: number;
219
+ page: number;
220
+ };
221
+ /**
222
+ * Helper to build custom JSON payload structure with optional status code and headers hint.
223
+ */
224
+ export declare function json<T>(data: T, status?: number, headers?: ResponseHeaders): {
225
+ data: T;
226
+ status: number;
227
+ headers: ResponseHeaders;
228
+ };
229
+ /**
230
+ * Helper to create a redirection descriptor.
231
+ */
232
+ export declare function redirect(url: string, status?: number): {
233
+ redirect: string;
234
+ status: number;
235
+ };
236
+ export { ExisResponse } from '../server/response';
237
+ export { SSEStream, formatSSEEvent, type SSEOptions, type SSEMessage, } from '../server/sse';
238
+ export type { CookieOptions } from '../types';
16
239
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/response/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,OAAO,EAAE,IAAI,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,CAAC,CAAA;CACR,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,KAAK,CAAA;IACd,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAA;CACF,CAAA;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAIxE;AAED,wBAAgB,KAAK,CACnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,GAChB,aAAa,CAKf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/response/index.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,289 @@
1
1
  "use strict";
2
+ // ─── Standard Response Envelope Types ─────────────────────────────────────────
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.formatSSEEvent = exports.SSEStream = exports.ExisResponse = exports.HttpStatus = void 0;
5
+ exports.getStatusText = getStatusText;
6
+ exports.isSuccessStatus = isSuccessStatus;
7
+ exports.isRedirectStatus = isRedirectStatus;
8
+ exports.isClientError = isClientError;
9
+ exports.isServerError = isServerError;
3
10
  exports.success = success;
11
+ exports.created = created;
12
+ exports.accepted = accepted;
13
+ exports.noContent = noContent;
4
14
  exports.error = error;
5
- function success(data, message) {
15
+ exports.problem = problem;
16
+ exports.paginate = paginate;
17
+ exports.getPaginationSkip = getPaginationSkip;
18
+ exports.json = json;
19
+ exports.redirect = redirect;
20
+ // ─── HTTP Status Codes ────────────────────────────────────────────────────────
21
+ /**
22
+ * Standard HTTP Status Code Constants.
23
+ */
24
+ exports.HttpStatus = {
25
+ // 2xx Success
26
+ OK: 200,
27
+ CREATED: 201,
28
+ ACCEPTED: 202,
29
+ NON_AUTHORITATIVE_INFORMATION: 203,
30
+ NO_CONTENT: 204,
31
+ RESET_CONTENT: 205,
32
+ PARTIAL_CONTENT: 206,
33
+ // 3xx Redirection
34
+ MULTIPLE_CHOICES: 300,
35
+ MOVED_PERMANENTLY: 301,
36
+ FOUND: 302,
37
+ SEE_OTHER: 303,
38
+ NOT_MODIFIED: 304,
39
+ TEMPORARY_REDIRECT: 307,
40
+ PERMANENT_REDIRECT: 308,
41
+ // 4xx Client Errors
42
+ BAD_REQUEST: 400,
43
+ UNAUTHORIZED: 401,
44
+ PAYMENT_REQUIRED: 402,
45
+ FORBIDDEN: 403,
46
+ NOT_FOUND: 404,
47
+ METHOD_NOT_ALLOWED: 405,
48
+ NOT_ACCEPTABLE: 406,
49
+ PROXY_AUTHENTICATION_REQUIRED: 407,
50
+ REQUEST_TIMEOUT: 408,
51
+ CONFLICT: 409,
52
+ GONE: 410,
53
+ LENGTH_REQUIRED: 411,
54
+ PRECONDITION_FAILED: 412,
55
+ PAYLOAD_TOO_LARGE: 413,
56
+ URI_TOO_LONG: 414,
57
+ UNSUPPORTED_MEDIA_TYPE: 415,
58
+ RANGE_NOT_SATISFIABLE: 416,
59
+ EXPECTATION_FAILED: 417,
60
+ IM_A_TEAPOT: 418,
61
+ MISDIRECTED_REQUEST: 421,
62
+ UNPROCESSABLE_ENTITY: 422,
63
+ LOCKED: 423,
64
+ FAILED_DEPENDENCY: 424,
65
+ TOO_EARLY: 425,
66
+ UPGRADE_REQUIRED: 426,
67
+ PRECONDITION_REQUIRED: 428,
68
+ TOO_MANY_REQUESTS: 429,
69
+ REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
70
+ UNAVAILABLE_FOR_LEGAL_REASONS: 451,
71
+ // 5xx Server Errors
72
+ INTERNAL_SERVER_ERROR: 500,
73
+ NOT_IMPLEMENTED: 501,
74
+ BAD_GATEWAY: 502,
75
+ SERVICE_UNAVAILABLE: 503,
76
+ GATEWAY_TIMEOUT: 504,
77
+ HTTP_VERSION_NOT_SUPPORTED: 505,
78
+ VARIANT_ALSO_NEGOTIATES: 506,
79
+ INSUFFICIENT_STORAGE: 507,
80
+ LOOP_DETECTED: 508,
81
+ NOT_EXTENDED: 510,
82
+ NETWORK_AUTHENTICATION_REQUIRED: 511,
83
+ };
84
+ const STATUS_TEXT_MAP = {
85
+ 200: 'OK',
86
+ 201: 'Created',
87
+ 202: 'Accepted',
88
+ 204: 'No Content',
89
+ 301: 'Moved Permanently',
90
+ 302: 'Found',
91
+ 304: 'Not Modified',
92
+ 307: 'Temporary Redirect',
93
+ 308: 'Permanent Redirect',
94
+ 400: 'Bad Request',
95
+ 401: 'Unauthorized',
96
+ 403: 'Forbidden',
97
+ 404: 'Not Found',
98
+ 405: 'Method Not Allowed',
99
+ 406: 'Not Acceptable',
100
+ 409: 'Conflict',
101
+ 410: 'Gone',
102
+ 413: 'Payload Too Large',
103
+ 415: 'Unsupported Media Type',
104
+ 422: 'Unprocessable Entity',
105
+ 429: 'Too Many Requests',
106
+ 500: 'Internal Server Error',
107
+ 501: 'Not Implemented',
108
+ 502: 'Bad Gateway',
109
+ 503: 'Service Unavailable',
110
+ 504: 'Gateway Timeout',
111
+ };
112
+ /**
113
+ * Returns human-readable status text for a given HTTP status code.
114
+ */
115
+ function getStatusText(status) {
116
+ return (STATUS_TEXT_MAP[status] ||
117
+ (status >= 200 && status < 300 ? 'OK' : 'Unknown Status'));
118
+ }
119
+ /**
120
+ * Determines whether a status code represents a 2xx success.
121
+ */
122
+ function isSuccessStatus(status) {
123
+ return status >= 200 && status < 300;
124
+ }
125
+ /**
126
+ * Determines whether a status code represents a 3xx redirection.
127
+ */
128
+ function isRedirectStatus(status) {
129
+ return status >= 300 && status < 400;
130
+ }
131
+ /**
132
+ * Determines whether a status code represents a 4xx client error.
133
+ */
134
+ function isClientError(status) {
135
+ return status >= 400 && status < 500;
136
+ }
137
+ /**
138
+ * Determines whether a status code represents a 5xx server error.
139
+ */
140
+ function isServerError(status) {
141
+ return status >= 500 && status < 600;
142
+ }
143
+ // ─── Response Builders ────────────────────────────────────────────────────────
144
+ /**
145
+ * Creates a standard 200 OK success response envelope.
146
+ *
147
+ * @example
148
+ * return success(user, 'User profile retrieved successfully')
149
+ */
150
+ function success(data, message, meta) {
6
151
  const res = { success: true, data };
7
152
  if (message !== undefined)
8
153
  res.message = message;
154
+ if (meta !== undefined)
155
+ res.meta = meta;
156
+ return res;
157
+ }
158
+ /**
159
+ * Creates a standard 201 Created response envelope.
160
+ *
161
+ * @example
162
+ * return created(newUser, 'User created successfully')
163
+ */
164
+ function created(data, message = 'Created', meta) {
165
+ const res = { success: true, data, message };
166
+ if (meta !== undefined)
167
+ res.meta = meta;
168
+ return res;
169
+ }
170
+ /**
171
+ * Creates a standard 202 Accepted response envelope for async background processing.
172
+ *
173
+ * @example
174
+ * return accepted({ jobId: '123' }, 'Job queued for background execution')
175
+ */
176
+ function accepted(data = null, message = 'Accepted', meta) {
177
+ const res = { success: true, data, message };
178
+ if (meta !== undefined)
179
+ res.meta = meta;
9
180
  return res;
10
181
  }
11
- function error(message, code, details) {
182
+ /**
183
+ * Creates a standard 204 No Content response representation.
184
+ *
185
+ * @example
186
+ * return noContent()
187
+ */
188
+ function noContent() {
189
+ return { success: true, data: null };
190
+ }
191
+ /**
192
+ * Creates a standard error response envelope.
193
+ *
194
+ * @example
195
+ * return error('Invalid credentials', 'AUTH_INVALID_CREDENTIALS', undefined, 401)
196
+ */
197
+ function error(message, code, details, status) {
12
198
  const res = { success: false, error: { message } };
13
199
  if (code !== undefined)
14
200
  res.error.code = code;
15
201
  if (details !== undefined)
16
202
  res.error.details = details;
203
+ if (status !== undefined)
204
+ res.error.status = status;
17
205
  return res;
18
206
  }
207
+ /**
208
+ * Creates a standardized RFC 7807 / RFC 9457 Problem Details object.
209
+ *
210
+ * @example
211
+ * return problem('Invalid Request Body', 422, 'The email field is invalid', {
212
+ * invalidParams: [{ name: 'email', reason: 'Must be a valid email format' }]
213
+ * })
214
+ */
215
+ function problem(title, status, detail, options = {}) {
216
+ return {
217
+ title,
218
+ status,
219
+ ...(detail ? { detail } : {}),
220
+ ...options,
221
+ };
222
+ }
223
+ /**
224
+ * Creates a standardized paginated response envelope.
225
+ *
226
+ * @example
227
+ * return paginate(users, totalCount, { page: 1, limit: 20 })
228
+ */
229
+ function paginate(data, total, options = {}, message, meta) {
230
+ const page = Math.max(1, Number(options.page) || 1);
231
+ const limit = Math.max(1, Number(options.limit) || 20);
232
+ const totalPages = Math.ceil(total / limit);
233
+ const hasNext = page < totalPages;
234
+ const hasPrev = page > 1;
235
+ const res = {
236
+ success: true,
237
+ data,
238
+ pagination: {
239
+ page,
240
+ limit,
241
+ total,
242
+ totalPages,
243
+ hasNextPage: hasNext,
244
+ hasPrevPage: hasPrev,
245
+ hasNext,
246
+ hasPrev,
247
+ },
248
+ };
249
+ if (message !== undefined)
250
+ res.message = message;
251
+ if (meta !== undefined)
252
+ res.meta = meta;
253
+ return res;
254
+ }
255
+ /**
256
+ * Calculates SQL/Database `skip` (offset) and `limit` from pagination query parameters.
257
+ *
258
+ * @example
259
+ * const { skip, limit, page } = getPaginationSkip(req.query)
260
+ * const users = await db.user.findMany({ skip, take: limit })
261
+ */
262
+ function getPaginationSkip(query = {}) {
263
+ const page = Math.max(1, Number(query.page) || 1);
264
+ const limit = Math.max(1, Number(query.limit) || 20);
265
+ return {
266
+ skip: (page - 1) * limit,
267
+ limit,
268
+ page,
269
+ };
270
+ }
271
+ /**
272
+ * Helper to build custom JSON payload structure with optional status code and headers hint.
273
+ */
274
+ function json(data, status = 200, headers = {}) {
275
+ return { data, status, headers };
276
+ }
277
+ /**
278
+ * Helper to create a redirection descriptor.
279
+ */
280
+ function redirect(url, status = 302) {
281
+ return { redirect: url, status };
282
+ }
283
+ // ─── Direct Re-exports ────────────────────────────────────────────────────────
284
+ var response_1 = require("../server/response");
285
+ Object.defineProperty(exports, "ExisResponse", { enumerable: true, get: function () { return response_1.ExisResponse; } });
286
+ var sse_1 = require("../server/sse");
287
+ Object.defineProperty(exports, "SSEStream", { enumerable: true, get: function () { return sse_1.SSEStream; } });
288
+ Object.defineProperty(exports, "formatSSEEvent", { enumerable: true, get: function () { return sse_1.formatSSEEvent; } });
19
289
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/response/index.ts"],"names":[],"mappings":";;AAeA,0BAIC;AAED,sBASC;AAfD,SAAgB,OAAO,CAAI,IAAO,EAAE,OAAgB;IAClD,MAAM,GAAG,GAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACvD,IAAI,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAA;IAChD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,KAAK,CACnB,OAAe,EACf,IAAa,EACb,OAAiB;IAEjB,MAAM,GAAG,GAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAA;IACjE,IAAI,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;IAC7C,IAAI,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;IACtD,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/response/index.ts"],"names":[],"mappings":"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"}
@@ -11,16 +11,16 @@ export interface BoundaryExcludeRule {
11
11
  methods?: HttpMethod[];
12
12
  method?: HttpMethod;
13
13
  }
14
- export interface BoundaryConfig {
14
+ export interface BoundaryConfig<TContext = Record<string, any>> {
15
15
  /**
16
16
  * Middleware to apply to all routes in this directory and subdirectories.
17
17
  * Replaces the old router.use() globally for a folder.
18
18
  */
19
- middleware?: Handler[] | Handler;
19
+ middleware?: Handler<any, any, any, any, TContext>[] | Handler<any, any, any, any, TContext>;
20
20
  /**
21
21
  * Alias for `middleware`. Supports plural naming.
22
22
  */
23
- middlewares?: Handler[] | Handler;
23
+ middlewares?: Handler<any, any, any, any, TContext>[] | Handler<any, any, any, any, TContext>;
24
24
  /**
25
25
  * CORS configuration applied to all routes in this directory and subdirectories.
26
26
  */
@@ -62,15 +62,35 @@ export interface BoundaryConfig {
62
62
  * Folder-scoped request timeout (in milliseconds).
63
63
  * Can be a static number or a dynamic function evaluated per-request.
64
64
  */
65
- timeout?: number | ((req: import('../types').Request<any, any, any>) => number | undefined);
65
+ timeout?: number | ((req: import('../types').Request<any, any, any, TContext>) => number | undefined);
66
66
  /**
67
67
  * Cascading metadata (e.g., OpenAPI tags, roles) applied to all routes in this directory.
68
68
  */
69
69
  metadata?: Record<string, any>;
70
+ /**
71
+ * Opt-in security scanner noise suppression & exploit probe blocker.
72
+ * Intercepts automated vulnerability scanner probes (e.g. `/.env`, `/.git`, `/.DS_Store`)
73
+ * and blackholes them immediately without running downstream handlers or flooding error logs.
74
+ */
75
+ blockProbes?: boolean | import('../middleware/security').BlockProbesOptions;
76
+ blockSuspiciousProbes?: boolean | import('../middleware/security').BlockProbesOptions;
77
+ /**
78
+ * Hook executed immediately before any route handler in this boundary.
79
+ * Can short-circuit execution by returning `false` or sending a response directly.
80
+ */
81
+ beforeHandle?: BoundaryBeforeHandleHook<TContext> | BoundaryBeforeHandleHook<TContext>[];
82
+ /**
83
+ * Hook executed immediately after a route handler in this boundary successfully returns.
84
+ * Receives `(req, res, data)` and can transform the outgoing payload or perform audit logging.
85
+ */
86
+ afterHandle?: BoundaryAfterHandleHook<any, TContext> | BoundaryAfterHandleHook<any, TContext>[];
70
87
  }
88
+ export type { BlockProbesOptions } from '../middleware/security';
89
+ export type BoundaryBeforeHandleHook<TContext = Record<string, any>> = (req: import('../types').Request<any, any, any, TContext>, res: import('../types').Response) => void | boolean | Promise<void | boolean>;
90
+ export type BoundaryAfterHandleHook<T = any, TContext = Record<string, any>> = (req: import('../types').Request<any, any, any, TContext>, res: import('../types').Response, data?: T) => void | any | Promise<void | any>;
71
91
  /**
72
92
  * Defines a boundary that acts as folder-scoped config + request pipeline for
73
93
  * everything in this directory and subdirectories.
74
94
  */
75
- export declare function defineBoundary(config: BoundaryConfig): BoundaryConfig;
95
+ export declare function defineBoundary<TContext = Record<string, any>>(config: BoundaryConfig<TContext>): BoundaryConfig<TContext>;
76
96
  //# sourceMappingURL=boundary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../src/router/boundary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,OAAO,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9C,GAAG,EAAE,OAAO,UAAU,EAAE,QAAQ,CAAA;IAChC,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAEjC;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IAE3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC;;OAEG;IACH,OAAO,CAAC,EAAE,CACR,OAAO,UAAU,EAAE,kBAAkB,GAAG,OAAO,UAAU,EAAE,UAAU,CACtE,EAAE,CAAA;IAEH;;;OAGG;IACH,OAAO,CAAC,EAAE,CACR,OAAO,UAAU,EAAE,kBAAkB,GAAG,OAAO,UAAU,EAAE,UAAU,CACtE,EAAE,CAAA;IAEH;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;IAE/C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,mBAAmB,CAAC,EAAE,CAAA;IAE1C;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,EAAE,CAAA;IAEpB;;;OAGG;IACH,OAAO,CAAC,EACJ,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,CAAA;IAE5E;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAErE"}
1
+ {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../src/router/boundary.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.js","sourceRoot":"","sources":["../../src/router/boundary.ts"],"names":[],"mappings":";;AA+FA,wCAEC;AAND;;;GAGG;AACH,SAAgB,cAAc,CAAC,MAAsB;IACnD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"boundary.js","sourceRoot":"","sources":["../../src/router/boundary.ts"],"names":[],"mappings":";;AA0IA,wCAIC;AARD;;;GAGG;AACH,SAAgB,cAAc,CAC5B,MAAgC;IAEhC,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller-registrar.d.ts","sourceRoot":"","sources":["../../src/router/controller-registrar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGxC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;IAI1B,mBAAmB,CACxB,WAAW,EAAE,GAAG,EAAE,EAClB,QAAQ,SAAK,EACb,iBAAiB,GAAE,GAAG,EAAO,GAC5B,GAAG,CAAC,GAAG,CAAC;IAIX,OAAO,CAAC,oBAAoB;CAyb7B"}
1
+ {"version":3,"file":"controller-registrar.d.ts","sourceRoot":"","sources":["../../src/router/controller-registrar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGxC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;IAI1B,mBAAmB,CACxB,WAAW,EAAE,GAAG,EAAE,EAClB,QAAQ,SAAK,EACb,iBAAiB,GAAE,GAAG,EAAO,GAC5B,GAAG,CAAC,GAAG,CAAC;IAIX,OAAO,CAAC,oBAAoB;CAof7B"}