@fishka/express 0.9.8 → 0.9.10

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 (80) hide show
  1. package/README.md +21 -13
  2. package/dist/cjs/api.types.d.ts +4 -4
  3. package/dist/cjs/api.types.js +8 -7
  4. package/dist/cjs/api.types.js.map +1 -0
  5. package/dist/cjs/auth/auth-strategy.js +1 -0
  6. package/dist/cjs/auth/auth-strategy.js.map +1 -0
  7. package/dist/cjs/auth/auth.types.js +1 -0
  8. package/dist/cjs/auth/auth.types.js.map +1 -0
  9. package/dist/cjs/auth/auth.utils.js +1 -0
  10. package/dist/cjs/auth/auth.utils.js.map +1 -0
  11. package/dist/cjs/auth/bearer-auth-strategy.js +1 -0
  12. package/dist/cjs/auth/bearer-auth-strategy.js.map +1 -0
  13. package/dist/cjs/config.js +1 -0
  14. package/dist/cjs/config.js.map +1 -0
  15. package/dist/cjs/error-handling.js +1 -0
  16. package/dist/cjs/error-handling.js.map +1 -0
  17. package/dist/cjs/http-status-codes.js +1 -0
  18. package/dist/cjs/http-status-codes.js.map +1 -0
  19. package/dist/cjs/index.js +1 -0
  20. package/dist/cjs/index.js.map +1 -0
  21. package/dist/cjs/rate-limit/in-memory-rate-limiter.js +1 -0
  22. package/dist/cjs/rate-limit/in-memory-rate-limiter.js.map +1 -0
  23. package/dist/cjs/rate-limit/rate-limit.js +1 -0
  24. package/dist/cjs/rate-limit/rate-limit.js.map +1 -0
  25. package/dist/cjs/rate-limit/rate-limit.types.js +1 -0
  26. package/dist/cjs/rate-limit/rate-limit.types.js.map +1 -0
  27. package/dist/cjs/route-table.d.ts +1 -1
  28. package/dist/cjs/route-table.js +1 -0
  29. package/dist/cjs/route-table.js.map +1 -0
  30. package/dist/cjs/router.d.ts +3 -3
  31. package/dist/cjs/router.js +3 -2
  32. package/dist/cjs/router.js.map +1 -0
  33. package/dist/cjs/thread-local/thread-local-storage-middleware.js +1 -0
  34. package/dist/cjs/thread-local/thread-local-storage-middleware.js.map +1 -0
  35. package/dist/cjs/thread-local/thread-local-storage.js +1 -0
  36. package/dist/cjs/thread-local/thread-local-storage.js.map +1 -0
  37. package/dist/cjs/utils/conversion.utils.js +1 -0
  38. package/dist/cjs/utils/conversion.utils.js.map +1 -0
  39. package/dist/cjs/utils/express.utils.js +1 -0
  40. package/dist/cjs/utils/express.utils.js.map +1 -0
  41. package/dist/esm/api.types.d.ts +4 -4
  42. package/dist/esm/api.types.js +9 -8
  43. package/dist/esm/api.types.js.map +1 -0
  44. package/dist/esm/auth/auth-strategy.js +1 -0
  45. package/dist/esm/auth/auth-strategy.js.map +1 -0
  46. package/dist/esm/auth/auth.types.js +1 -0
  47. package/dist/esm/auth/auth.types.js.map +1 -0
  48. package/dist/esm/auth/auth.utils.js +1 -0
  49. package/dist/esm/auth/auth.utils.js.map +1 -0
  50. package/dist/esm/auth/bearer-auth-strategy.js +1 -0
  51. package/dist/esm/auth/bearer-auth-strategy.js.map +1 -0
  52. package/dist/esm/config.js +1 -0
  53. package/dist/esm/config.js.map +1 -0
  54. package/dist/esm/error-handling.js +1 -0
  55. package/dist/esm/error-handling.js.map +1 -0
  56. package/dist/esm/http-status-codes.js +1 -0
  57. package/dist/esm/http-status-codes.js.map +1 -0
  58. package/dist/esm/index.js +1 -0
  59. package/dist/esm/index.js.map +1 -0
  60. package/dist/esm/rate-limit/in-memory-rate-limiter.js +1 -0
  61. package/dist/esm/rate-limit/in-memory-rate-limiter.js.map +1 -0
  62. package/dist/esm/rate-limit/rate-limit.js +1 -0
  63. package/dist/esm/rate-limit/rate-limit.js.map +1 -0
  64. package/dist/esm/rate-limit/rate-limit.types.js +1 -0
  65. package/dist/esm/rate-limit/rate-limit.types.js.map +1 -0
  66. package/dist/esm/route-table.d.ts +1 -1
  67. package/dist/esm/route-table.js +1 -0
  68. package/dist/esm/route-table.js.map +1 -0
  69. package/dist/esm/router.d.ts +3 -3
  70. package/dist/esm/router.js +5 -4
  71. package/dist/esm/router.js.map +1 -0
  72. package/dist/esm/thread-local/thread-local-storage-middleware.js +1 -0
  73. package/dist/esm/thread-local/thread-local-storage-middleware.js.map +1 -0
  74. package/dist/esm/thread-local/thread-local-storage.js +1 -0
  75. package/dist/esm/thread-local/thread-local-storage.js.map +1 -0
  76. package/dist/esm/utils/conversion.utils.js +1 -0
  77. package/dist/esm/utils/conversion.utils.js.map +1 -0
  78. package/dist/esm/utils/express.utils.js +1 -0
  79. package/dist/esm/utils/express.utils.js.map +1 -0
  80. package/package.json +1 -1
package/README.md CHANGED
@@ -33,7 +33,7 @@ routes.get<Array<{ id: string; name: string }>>('users', async () => [
33
33
 
34
34
  // POST /users
35
35
  routes.post<{ name: string }, { id: string }>('users', {
36
- $body: { name: v => assertString(v, '400: name required') },
36
+ $body: { name: v => assertString(v, 'name required') },
37
37
  run: async ctx => ({ id: '1' }),
38
38
  });
39
39
 
@@ -51,14 +51,14 @@ Global validation can be enforced for specific URL parameters (e.g., `:id`, `:or
51
51
 
52
52
  ```typescript
53
53
  import { registerUrlParameter } from '@fishka/express';
54
- import { assertString } from '@fishka/assertions';
54
+ import { assertString, assertTruthy } from '@fishka/assertions';
55
55
 
56
56
  // Register parameters with optional validation
57
57
  registerUrlParameter('orgId', {
58
- validator: (val) => {
58
+ validator: val => {
59
59
  assertString(val);
60
- if (!val.startsWith('org-')) throw new Error('400: Invalid Organization ID');
61
- }
60
+ assertTruthy(val.startsWith('org-'), 'Invalid Organization ID');
61
+ },
62
62
  });
63
63
 
64
64
  // Now /orgs/:orgId will automatically validate that orgId starts with 'org-'
@@ -95,19 +95,27 @@ app.use(
95
95
  );
96
96
  ```
97
97
 
98
+ ## HTTP Status Code in Validation
99
+
100
+ For cases where you need specific HTTP status codes (like 401 for authentication, 404 for not found), use `assertHttp`:
101
+
102
+ ```typescript
103
+ import { assertHttp, HTTP_UNAUTHORIZED, HTTP_NOT_FOUND } from '@fishka/express';
104
+
105
+ // In a validator or route handler
106
+ assertHttp(req.headers.authorization, HTTP_UNAUTHORIZED, 'Authorization required');
107
+ assertHttp(user, HTTP_NOT_FOUND, 'User not found');
108
+ assertHttp(user.isAdmin, HTTP_FORBIDDEN, 'Admin access required');
109
+ ```
110
+
98
111
  ## Complete Example
99
112
 
100
113
  Here is a full initialization including TLS context, global validation, and proper error handling.
101
114
 
102
115
  ```typescript
103
116
  import express from 'express';
104
- import {
105
- createRouteTable,
106
- createTlsMiddleware,
107
- catchAllMiddleware,
108
- registerUrlParameter
109
- } from '@fishka/express';
110
- import { assertString } from '@fishka/assertions';
117
+ import { createRouteTable, createTlsMiddleware, catchAllMiddleware, registerUrlParameter } from '@fishka/express';
118
+ import { assertString, assertTruthy } from '@fishka/assertions';
111
119
 
112
120
  const app = express();
113
121
 
@@ -119,7 +127,7 @@ app.use(createTlsMiddleware());
119
127
 
120
128
  // 3. Register global URL parameters
121
129
  registerUrlParameter('id', {
122
- validator: (val) => assertString(val)
130
+ validator: val => assertString(val),
123
131
  });
124
132
 
125
133
  // 4. Define routes
@@ -6,10 +6,10 @@ export declare class HttpError extends Error {
6
6
  constructor(status: number, message: string, details?: Record<string, unknown> | undefined);
7
7
  }
8
8
  /**
9
- * Asserts that a condition is true, throwing an HttpError with the specified status code if false.
9
+ * Asserts that the value is truthy, throwing an HttpError with the specified status code if false.
10
10
  * This function is designed for HTTP-specific validation where you want to throw appropriate HTTP status codes.
11
11
  *
12
- * @param condition - The condition to check. If false, an HttpError will be thrown.
12
+ * @param value - The condition to check. If falsy, an HttpError will be thrown.
13
13
  * @param status - The HTTP status code to use in the HttpError (e.g., 400 for Bad Request, 404 for Not Found).
14
14
  * @param message - The error message to include in the HttpError.
15
15
  *
@@ -21,7 +21,7 @@ export declare class HttpError extends Error {
21
21
  * assertHttp(typeof userId === 'string', HTTP_BAD_REQUEST, 'User ID must be a string');
22
22
  *
23
23
  * // Validate resource existence
24
- * assertHttp(user !== null, HTTP_NOT_FOUND, 'User not found');
24
+ * assertHttp(user, HTTP_NOT_FOUND, 'User not found');
25
25
  *
26
26
  * // Validate authorization
27
27
  * assertHttp(user.isAdmin, HTTP_FORBIDDEN, 'Admin access required');
@@ -36,7 +36,7 @@ export declare class HttpError extends Error {
36
36
  * @see {@link HTTP_FORBIDDEN}
37
37
  * @see {@link HTTP_UNAUTHORIZED}
38
38
  */
39
- export declare function assertHttp(condition: boolean, status: number, message: string): asserts condition;
39
+ export declare function assertHttp(value: unknown, status: number, message: string): asserts value;
40
40
  export interface ApiResponse<ResponseEntity = unknown> {
41
41
  /** Result of the call. A single entity for non-paginated ${by-id} requests or an array for list queries. */
42
42
  result: ResponseEntity;
@@ -18,10 +18,10 @@ class HttpError extends Error {
18
18
  }
19
19
  exports.HttpError = HttpError;
20
20
  /**
21
- * Asserts that a condition is true, throwing an HttpError with the specified status code if false.
21
+ * Asserts that the value is truthy, throwing an HttpError with the specified status code if false.
22
22
  * This function is designed for HTTP-specific validation where you want to throw appropriate HTTP status codes.
23
23
  *
24
- * @param condition - The condition to check. If false, an HttpError will be thrown.
24
+ * @param value - The condition to check. If falsy, an HttpError will be thrown.
25
25
  * @param status - The HTTP status code to use in the HttpError (e.g., 400 for Bad Request, 404 for Not Found).
26
26
  * @param message - The error message to include in the HttpError.
27
27
  *
@@ -33,7 +33,7 @@ exports.HttpError = HttpError;
33
33
  * assertHttp(typeof userId === 'string', HTTP_BAD_REQUEST, 'User ID must be a string');
34
34
  *
35
35
  * // Validate resource existence
36
- * assertHttp(user !== null, HTTP_NOT_FOUND, 'User not found');
36
+ * assertHttp(user, HTTP_NOT_FOUND, 'User not found');
37
37
  *
38
38
  * // Validate authorization
39
39
  * assertHttp(user.isAdmin, HTTP_FORBIDDEN, 'Admin access required');
@@ -48,8 +48,8 @@ exports.HttpError = HttpError;
48
48
  * @see {@link HTTP_FORBIDDEN}
49
49
  * @see {@link HTTP_UNAUTHORIZED}
50
50
  */
51
- function assertHttp(condition, status, message) {
52
- (0, assertions_1.assertTruthy)(condition, () => new HttpError(status, message));
51
+ function assertHttp(value, status, message) {
52
+ (0, assertions_1.assertTruthy)(value, () => new HttpError(status, message));
53
53
  }
54
54
  /** Converts an API response value into a standardized ApiResponse structure. */
55
55
  function response(result) {
@@ -69,6 +69,7 @@ function registerUrlParameter(name, info) {
69
69
  * @Internal
70
70
  */
71
71
  function assertUrlParameter(name) {
72
- (0, assertions_1.assertString)(name, 'Url parameter name must be a string');
73
- assertHttp(exports.URL_PARAMETER_INFO[name] !== undefined, http_status_codes_1.HTTP_BAD_REQUEST, `Invalid URL parameter: '${name}'. Please register it using 'registerUrlParameter('${name}', ...)'`);
72
+ assertHttp(typeof name === 'string', http_status_codes_1.HTTP_BAD_REQUEST, 'Url parameter name must be a string');
73
+ assertHttp(exports.URL_PARAMETER_INFO[name], http_status_codes_1.HTTP_BAD_REQUEST, `Invalid URL parameter: '${name}'. Please register it using 'registerUrlParameter('${name}', ...)'`);
74
74
  }
75
+ //# sourceMappingURL=api.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.types.js","sourceRoot":"","sources":["../../src/api.types.ts"],"names":[],"mappings":";;;AAgDA,gCAEC;AA2BD,4BAEC;AAiBD,oDAEC;AAMD,gDAOC;AA/GD,mDAAkE;AAClE,2DAAuD;AAIvD,MAAa,SAAU,SAAQ,KAAK;IAClC,YACkB,MAAc,EAC9B,OAAe,EACC,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,WAAM,GAAN,MAAM,CAAQ;QAEd,YAAO,GAAP,OAAO,CAA0B;QAGjD,qDAAqD;QACrD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF;AAVD,8BAUC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,UAAU,CAAC,KAAc,EAAE,MAAc,EAAE,OAAe;IACxE,IAAA,yBAAY,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5D,CAAC;AA0BD,gFAAgF;AAChF,SAAgB,QAAQ,CAAc,MAAS;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAUD;;;GAGG;AACU,QAAA,kBAAkB,GAAqC,EAAE,CAAC;AAEvE,qCAAqC;AACrC,SAAgB,oBAAoB,CAAC,IAAY,EAAE,IAAsB;IACvE,0BAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,IAAa;IAC9C,UAAU,CAAC,OAAO,IAAI,KAAK,QAAQ,EAAE,oCAAgB,EAAE,qCAAqC,CAAC,CAAC;IAC9F,UAAU,CACR,0BAAkB,CAAC,IAAI,CAAC,EACxB,oCAAgB,EAChB,2BAA2B,IAAI,sDAAsD,IAAI,UAAU,CACpG,CAAC;AACJ,CAAC"}
@@ -60,3 +60,4 @@ class BasicAuthStrategy {
60
60
  }
61
61
  }
62
62
  exports.BasicAuthStrategy = BasicAuthStrategy;
63
+ //# sourceMappingURL=auth-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-strategy.js","sourceRoot":"","sources":["../../../src/auth/auth-strategy.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,4DAAyD;AAIzD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,iBAAiB;IAI5B,YAA6B,QAAsE;QAAtE,aAAQ,GAAR,QAAQ,CAA8D;IAAG,CAAC;IAEvG;;;;OAIG;IACH,kBAAkB,CAAC,GAAmB;QACpC,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtF,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEhD,+HAA+H;YAC/H,wEAAwE;YACxE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAA0C;QACtF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,qBAAS,CAAC,qCAAiB,EAAE,8BAA8B,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA3CD,8CA2CC"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=auth.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.types.js","sourceRoot":"","sources":["../../../src/auth/auth.types.ts"],"names":[],"mappings":""}
@@ -62,3 +62,4 @@ function getAuthUser(context) {
62
62
  function tryGetAuthUser(context) {
63
63
  return context.authUser;
64
64
  }
65
+ //# sourceMappingURL=auth.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.utils.js","sourceRoot":"","sources":["../../../src/auth/auth.utils.ts"],"names":[],"mappings":";;AAcA,oDA4BC;AAWD,kCAMC;AAUD,wCAEC;AAvED,4CAAyC;AACzC,4DAAyD;AAIzD;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAClC,QAAqC,EACrC,SAAyD;IAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAChC,mCAAmC;QACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE7D,uFAAuF;QACvF,kIAAkI;QAClI,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,qBAAS,CAAC,qCAAiB,EAAE,2CAA2C,CAAC,CAAC;QACtF,CAAC;QAED,kDAAkD;QAClD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAE7D,8DAA8D;QAC9D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAExB,kCAAkC;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,6BAA6B;QAC7B,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAmC,OAAuB;IACnF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,qBAAS,CAAC,qCAAiB,EAAE,yDAAyD,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,IAAY,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAmC,OAAuB;IACtF,OAAO,OAAO,CAAC,QAA4B,CAAC;AAC9C,CAAC"}
@@ -57,3 +57,4 @@ class BearerAuthStrategy {
57
57
  }
58
58
  }
59
59
  exports.BearerAuthStrategy = BearerAuthStrategy;
60
+ //# sourceMappingURL=bearer-auth-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bearer-auth-strategy.js","sourceRoot":"","sources":["../../../src/auth/bearer-auth-strategy.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,4DAAyD;AAIzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,kBAAkB;IAC7B;;OAEG;IACH,YAA6B,QAAiD;QAAjD,aAAQ,GAAR,QAAQ,CAAyC;IAAG,CAAC;IAElF;;;OAGG;IACH,kBAAkB,CAAC,GAAmB;QACpC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,KAAa;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,qBAAS,CAAC,qCAAiB,EAAE,eAAe,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlCD,gDAkCC"}
@@ -27,3 +27,4 @@ function getExpressApiConfig() {
27
27
  function resetExpressApiConfig() {
28
28
  currentConfig = { ...defaultConfig };
29
29
  }
30
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;AAoBA,kDAEC;AAKD,kDAEC;AAMD,sDAEC;AA3BD,MAAM,aAAa,GAA2B;IAC5C,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,IAAI,aAAa,GAA2B,EAAE,GAAG,aAAa,EAAE,CAAC;AAEjE;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,MAAuC;IACzE,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAA4B,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB;IACnC,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;AACvC,CAAC"}
@@ -68,3 +68,4 @@ async function catchAllMiddleware(error, _, res, next) {
68
68
  res.status(apiResponse.status);
69
69
  res.send(apiResponse);
70
70
  }
71
+ //# sourceMappingURL=error-handling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../src/error-handling.ts"],"names":[],"mappings":";;AAoCA,4CAeC;AAMD,gDAkBC;AA3ED,mDAAyD;AAEzD,2CAAqD;AACrD,2DAAmF;AACnF,8EAA6E;AAC7E,+DAA6D;AAG7D,SAAS,gBAAgB,CAAC,KAAc;IACtC,MAAM,GAAG,GAAG,IAAA,6CAAsB,GAAE,CAAC;IACrC,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,CAAC;IACjC,IAAI,QAA0C,CAAC;IAE/C,IAAI,KAAK,YAAY,qBAAS,EAAE,CAAC;QAC/B,QAAQ,GAAG;YACT,GAAG,IAAA,oCAAiB,EAAC,SAAS,CAAC;YAC/B,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,IAAA,gCAAmB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,QAAQ,GAAG;YACT,GAAG,IAAA,oCAAiB,EAAC,SAAS,CAAC;YAC/B,KAAK,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB;YAChF,MAAM,EAAE,8CAA0B;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IACjC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,SAAgB,gBAAgB,CAAC,EAAmB;IAClD,OAAO,KAAK,EAAE,GAAmB,EAAE,GAAoB,EAAE,IAAkB,EAAiB,EAAE;QAC5F,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,WAAW,CAAC,MAAM,IAAI,8CAA0B,EAAE,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YACD,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CACtC,KAAc,EACd,CAAiB,EACjB,GAAoB,EACpB,IAAkB;IAElB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;QACP,OAAO;IACT,CAAC;IACD,8DAA8D;IAC9D,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAA,gCAAmB,EAAC,KAAK,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GACf,KAAK,YAAY,WAAW,CAAC,2BAA2B;QACtD,CAAC,CAAC,gBAAgB,CAAC,GAAG,oCAAgB,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC;QACpF,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxB,CAAC"}
@@ -138,3 +138,4 @@ const getHttpStatusCodeReasonPhrase = (statusCode) => {
138
138
  return phrases[statusCode] || 'Unknown Status Code';
139
139
  };
140
140
  exports.getHttpStatusCodeReasonPhrase = getHttpStatusCodeReasonPhrase;
141
+ //# sourceMappingURL=http-status-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-status-codes.js","sourceRoot":"","sources":["../../src/http-status-codes.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -29,3 +29,4 @@ __exportStar(require("./router"), exports);
29
29
  __exportStar(require("./thread-local/thread-local-storage"), exports);
30
30
  __exportStar(require("./thread-local/thread-local-storage-middleware"), exports);
31
31
  __exportStar(require("./utils/express.utils"), exports);
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,uDAAqC;AACrC,oDAAkC;AAClC,oDAAkC;AAClC,8DAA4C;AAC5C,2CAAyB;AACzB,mDAAiC;AACjC,sDAAoC;AACpC,sEAAoD;AACpD,gEAA8C;AAC9C,gDAA8B;AAC9B,2CAAyB;AACzB,sEAAoD;AACpD,iFAA+D;AAC/D,wDAAsC"}
@@ -86,3 +86,4 @@ async function createRateLimiterMiddleware(config) {
86
86
  }
87
87
  };
88
88
  }
89
+ //# sourceMappingURL=in-memory-rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-rate-limiter.js","sourceRoot":"","sources":["../../../src/rate-limit/in-memory-rate-limiter.ts"],"names":[],"mappings":"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"}
@@ -32,3 +32,4 @@ function addRateLimitHeaders(res, result, limitPoints, duration) {
32
32
  function msToSeconds(ms) {
33
33
  return Math.ceil(ms / MILLIS_PER_SECOND);
34
34
  }
35
+ //# sourceMappingURL=rate-limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/rate-limit/rate-limit.ts"],"names":[],"mappings":";;AAgBA,kDAiBC;AAMD,kCAEC;AAtCD,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CACjC,GAAoB,EACpB,MAAuB,EACvB,WAAmB,EACnB,QAAgB;IAEhB,OAAO,CACL,GAAG;QACD,oEAAoE;SACnE,MAAM,CAAC,mBAAmB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,6CAA6C;SAC5C,MAAM,CAAC,uBAAuB,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7D,iEAAiE;SAChE,MAAM,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC;QACrF,qEAAqE;SACpE,MAAM,CAAC,oBAAoB,EAAE,GAAG,WAAW,MAAM,QAAQ,yBAAyB,CAAC,CACvF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,EAAU;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=rate-limit.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.types.js","sourceRoot":"","sources":["../../../src/rate-limit/rate-limit.types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
- import { ExpressApplication } from './utils/express.utils';
2
1
  import { DeleteEndpoint, GetEndpoint, PatchEndpoint, PostEndpoint, PutEndpoint, RequestContext, ResponseOrValue } from './router';
2
+ import { ExpressApplication } from './utils/express.utils';
3
3
  /**
4
4
  * Helper utility for organizing and mounting routes.
5
5
  * Provides a fluent interface for registering multiple handlers.
@@ -43,3 +43,4 @@ exports.RouteTable = RouteTable;
43
43
  function createRouteTable(app) {
44
44
  return new RouteTable(app);
45
45
  }
46
+ //# sourceMappingURL=route-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-table.js","sourceRoot":"","sources":["../../src/route-table.ts"],"names":[],"mappings":";;;AA+DA,4CAEC;AAjED,qCAakB;AAGlB;;;GAGG;AACH,MAAa,UAAU;IACrB,YAA6B,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAIxD,GAAG,CACD,IAAY,EACZ,aAAyG;QAEzG,MAAM,QAAQ,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAC9F,IAAA,iBAAQ,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAA0B,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAe,IAAY,EAAE,QAAoC;QACnE,IAAA,kBAAS,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAe,IAAY,EAAE,QAAqC;QACrE,IAAA,mBAAU,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAe,IAAY,EAAE,QAAmC;QACjE,IAAA,iBAAQ,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAID,MAAM,CAAC,IAAY,EAAE,aAAwE;QAC3F,MAAM,QAAQ,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAC9F,IAAA,oBAAW,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApCD,gCAoCC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,GAAuB;IACtD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
@@ -55,14 +55,14 @@ export type GetListEndpoint<ResultElementType = unknown> = EndpointBase<RequestC
55
55
  /** Descriptor for GET routes. */
56
56
  export type GetEndpoint<Result = unknown> = EndpointBase<RequestContext, Result>;
57
57
  /** Descriptor for POST routes. */
58
- export interface PostEndpoint<Body = unknown, Result = unknown> extends EndpointBase<RequestContext<Body>, Result> {
58
+ export interface PostEndpoint<Body = unknown, Result = void> extends EndpointBase<RequestContext<Body>, Result> {
59
59
  /** Request body validator. */
60
60
  $body: Body extends object ? ObjectAssertion<Body> : Assertion<Body>;
61
61
  }
62
62
  /** Same as POST. Used for full object updates. */
63
- export type PutEndpoint<Body = unknown, Result = unknown> = PostEndpoint<Body, Result>;
63
+ export type PutEndpoint<Body = unknown, Result = void> = PostEndpoint<Body, Result>;
64
64
  /** Same as PUT. While PUT is used for the whole object update, PATCH is used for a partial update. */
65
- export type PatchEndpoint<Body = unknown, Result = unknown> = PutEndpoint<Body, Result>;
65
+ export type PatchEndpoint<Body = unknown, Result = void> = PutEndpoint<Body, Result>;
66
66
  /** Descriptor for DELETE routes. */
67
67
  export type DeleteEndpoint = EndpointBase<RequestContext, void>;
68
68
  /** Union type for all route registration info objects. */
@@ -38,8 +38,8 @@ exports.mount = mount;
38
38
  const assertions_1 = require("@fishka/assertions");
39
39
  const url = __importStar(require("url"));
40
40
  const api_types_1 = require("./api.types");
41
- const http_status_codes_1 = require("./http-status-codes");
42
41
  const error_handling_1 = require("./error-handling");
42
+ const http_status_codes_1 = require("./http-status-codes");
43
43
  const thread_local_storage_1 = require("./thread-local/thread-local-storage");
44
44
  const conversion_utils_1 = require("./utils/conversion.utils");
45
45
  // ============================================================================
@@ -228,7 +228,7 @@ function newRequestContext(requestBody, req, res) {
228
228
  params: {
229
229
  get: (key) => {
230
230
  const value = req.params[key];
231
- (0, assertions_1.assertTruthy)(value, `Path parameter '${key}' not found`);
231
+ (0, api_types_1.assertHttp)(value, http_status_codes_1.HTTP_BAD_REQUEST, `Path parameter '${key}' not found`);
232
232
  return value;
233
233
  },
234
234
  tryGet: (key) => req.params[key],
@@ -243,3 +243,4 @@ function newRequestContext(requestBody, req, res) {
243
243
  state: new Map(),
244
244
  };
245
245
  }
246
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
@@ -25,3 +25,4 @@ function createTlsMiddleware() {
25
25
  });
26
26
  };
27
27
  }
28
+ //# sourceMappingURL=thread-local-storage-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-local-storage-middleware.js","sourceRoot":"","sources":["../../../src/thread-local/thread-local-storage-middleware.ts"],"names":[],"mappings":";;AAaA,kDAiBC;AA9BD,mCAAoC;AAEpC,sCAAgD;AAEhD,iEAA+D;AAE/D;;;;;;GAMG;AACH,SAAgB,mBAAmB;IACjC,OAAO,KAAK,EAAE,GAAmB,EAAE,IAAqB,EAAE,IAAkB,EAAiB,EAAE;QAC7F,MAAM,MAAM,GAAG,IAAA,4BAAmB,GAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,UAAU,GAAI,GAA+B,CAAC,SAAS,IAAI,QAAQ,CAAC;QAC1E,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,mBAAU,GAAE,CAAC;QAE7E,8CAA8C;QAC9C,MAAM,IAAA,4CAAqB,EACzB;YACE,SAAS;SACV,EACD,KAAK,IAAI,EAAE;YACT,IAAI,EAAE,CAAC;QACT,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -29,3 +29,4 @@ function getRequestLocalStorage() {
29
29
  async function runWithRequestTlsData(data, callback) {
30
30
  return asyncLocalStorage.run(data, callback);
31
31
  }
32
+ //# sourceMappingURL=thread-local-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-local-storage.js","sourceRoot":"","sources":["../../../src/thread-local/thread-local-storage.ts"],"names":[],"mappings":";;AA2BA,wDAEC;AAUD,sDAEC;AAzCD,6CAAgD;AAchD;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,IAAI,+BAAiB,EAAmB,CAAC;AAEnE;;;;GAIG;AACH,SAAgB,sBAAsB;IACpC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,qBAAqB,CAAI,IAAqB,EAAE,QAA0B;IAC9F,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
@@ -24,3 +24,4 @@ function wrapAsApiResponse(apiResponseOrResultValue) {
24
24
  : { result: apiResponseOrResultValue }; // Wrap the raw value into the correct ApiResponse form.
25
25
  return apiResponse;
26
26
  }
27
+ //# sourceMappingURL=conversion.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversion.utils.js","sourceRoot":"","sources":["../../../src/utils/conversion.utils.ts"],"names":[],"mappings":";;AAOA,0CAGC;AAQD,8CAMC;AAtBD;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAoB;IAClD,MAAM,gBAAgB,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7F,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAc,wBAA4C;IACzF,IAAI,WAAW,GAAmB,wBAA0C,CAAC;IAC7E,WAAW,GAAG,WAAW,EAAE,MAAM;QAC/B,CAAC,CAAC,WAAW,CAAC,kEAAkE;QAChF,CAAC,CAAiB,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC,wDAAwD;IAClH,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=express.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"express.utils.js","sourceRoot":"","sources":["../../../src/utils/express.utils.ts"],"names":[],"mappings":""}
@@ -6,10 +6,10 @@ export declare class HttpError extends Error {
6
6
  constructor(status: number, message: string, details?: Record<string, unknown> | undefined);
7
7
  }
8
8
  /**
9
- * Asserts that a condition is true, throwing an HttpError with the specified status code if false.
9
+ * Asserts that the value is truthy, throwing an HttpError with the specified status code if false.
10
10
  * This function is designed for HTTP-specific validation where you want to throw appropriate HTTP status codes.
11
11
  *
12
- * @param condition - The condition to check. If false, an HttpError will be thrown.
12
+ * @param value - The condition to check. If falsy, an HttpError will be thrown.
13
13
  * @param status - The HTTP status code to use in the HttpError (e.g., 400 for Bad Request, 404 for Not Found).
14
14
  * @param message - The error message to include in the HttpError.
15
15
  *
@@ -21,7 +21,7 @@ export declare class HttpError extends Error {
21
21
  * assertHttp(typeof userId === 'string', HTTP_BAD_REQUEST, 'User ID must be a string');
22
22
  *
23
23
  * // Validate resource existence
24
- * assertHttp(user !== null, HTTP_NOT_FOUND, 'User not found');
24
+ * assertHttp(user, HTTP_NOT_FOUND, 'User not found');
25
25
  *
26
26
  * // Validate authorization
27
27
  * assertHttp(user.isAdmin, HTTP_FORBIDDEN, 'Admin access required');
@@ -36,7 +36,7 @@ export declare class HttpError extends Error {
36
36
  * @see {@link HTTP_FORBIDDEN}
37
37
  * @see {@link HTTP_UNAUTHORIZED}
38
38
  */
39
- export declare function assertHttp(condition: boolean, status: number, message: string): asserts condition;
39
+ export declare function assertHttp(value: unknown, status: number, message: string): asserts value;
40
40
  export interface ApiResponse<ResponseEntity = unknown> {
41
41
  /** Result of the call. A single entity for non-paginated ${by-id} requests or an array for list queries. */
42
42
  result: ResponseEntity;
@@ -1,4 +1,4 @@
1
- import { assertString, assertTruthy } from '@fishka/assertions';
1
+ import { assertTruthy } from '@fishka/assertions';
2
2
  import { HTTP_BAD_REQUEST } from './http-status-codes';
3
3
  export class HttpError extends Error {
4
4
  constructor(status, message, details) {
@@ -10,10 +10,10 @@ export class HttpError extends Error {
10
10
  }
11
11
  }
12
12
  /**
13
- * Asserts that a condition is true, throwing an HttpError with the specified status code if false.
13
+ * Asserts that the value is truthy, throwing an HttpError with the specified status code if false.
14
14
  * This function is designed for HTTP-specific validation where you want to throw appropriate HTTP status codes.
15
15
  *
16
- * @param condition - The condition to check. If false, an HttpError will be thrown.
16
+ * @param value - The condition to check. If falsy, an HttpError will be thrown.
17
17
  * @param status - The HTTP status code to use in the HttpError (e.g., 400 for Bad Request, 404 for Not Found).
18
18
  * @param message - The error message to include in the HttpError.
19
19
  *
@@ -25,7 +25,7 @@ export class HttpError extends Error {
25
25
  * assertHttp(typeof userId === 'string', HTTP_BAD_REQUEST, 'User ID must be a string');
26
26
  *
27
27
  * // Validate resource existence
28
- * assertHttp(user !== null, HTTP_NOT_FOUND, 'User not found');
28
+ * assertHttp(user, HTTP_NOT_FOUND, 'User not found');
29
29
  *
30
30
  * // Validate authorization
31
31
  * assertHttp(user.isAdmin, HTTP_FORBIDDEN, 'Admin access required');
@@ -40,8 +40,8 @@ export class HttpError extends Error {
40
40
  * @see {@link HTTP_FORBIDDEN}
41
41
  * @see {@link HTTP_UNAUTHORIZED}
42
42
  */
43
- export function assertHttp(condition, status, message) {
44
- assertTruthy(condition, () => new HttpError(status, message));
43
+ export function assertHttp(value, status, message) {
44
+ assertTruthy(value, () => new HttpError(status, message));
45
45
  }
46
46
  /** Converts an API response value into a standardized ApiResponse structure. */
47
47
  export function response(result) {
@@ -61,6 +61,7 @@ export function registerUrlParameter(name, info) {
61
61
  * @Internal
62
62
  */
63
63
  export function assertUrlParameter(name) {
64
- assertString(name, 'Url parameter name must be a string');
65
- assertHttp(URL_PARAMETER_INFO[name] !== undefined, HTTP_BAD_REQUEST, `Invalid URL parameter: '${name}'. Please register it using 'registerUrlParameter('${name}', ...)'`);
64
+ assertHttp(typeof name === 'string', HTTP_BAD_REQUEST, 'Url parameter name must be a string');
65
+ assertHttp(URL_PARAMETER_INFO[name], HTTP_BAD_REQUEST, `Invalid URL parameter: '${name}'. Please register it using 'registerUrlParameter('${name}', ...)'`);
66
66
  }
67
+ //# sourceMappingURL=api.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.types.js","sourceRoot":"","sources":["../../src/api.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YACkB,MAAc,EAC9B,OAAe,EACC,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,WAAM,GAAN,MAAM,CAAQ;QAEd,YAAO,GAAP,OAAO,CAA0B;QAGjD,qDAAqD;QACrD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,MAAc,EAAE,OAAe;IACxE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5D,CAAC;AA0BD,gFAAgF;AAChF,MAAM,UAAU,QAAQ,CAAc,MAAS;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAUD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqC,EAAE,CAAC;AAEvE,qCAAqC;AACrC,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,IAAsB;IACvE,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC9C,UAAU,CAAC,OAAO,IAAI,KAAK,QAAQ,EAAE,gBAAgB,EAAE,qCAAqC,CAAC,CAAC;IAC9F,UAAU,CACR,kBAAkB,CAAC,IAAI,CAAC,EACxB,gBAAgB,EAChB,2BAA2B,IAAI,sDAAsD,IAAI,UAAU,CACpG,CAAC;AACJ,CAAC"}
@@ -56,3 +56,4 @@ export class BasicAuthStrategy {
56
56
  return user;
57
57
  }
58
58
  }
59
+ //# sourceMappingURL=auth-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-strategy.js","sourceRoot":"","sources":["../../../src/auth/auth-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,iBAAiB;IAI5B,YAA6B,QAAsE;QAAtE,aAAQ,GAAR,QAAQ,CAA8D;IAAG,CAAC;IAEvG;;;;OAIG;IACH,kBAAkB,CAAC,GAAmB;QACpC,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtF,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEhD,+HAA+H;YAC/H,wEAAwE;YACxE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAA0C;QACtF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,CAAC,iBAAiB,EAAE,8BAA8B,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=auth.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.types.js","sourceRoot":"","sources":["../../../src/auth/auth.types.ts"],"names":[],"mappings":""}
@@ -57,3 +57,4 @@ export function getAuthUser(context) {
57
57
  export function tryGetAuthUser(context) {
58
58
  return context.authUser;
59
59
  }
60
+ //# sourceMappingURL=auth.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.utils.js","sourceRoot":"","sources":["../../../src/auth/auth.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAqC,EACrC,SAAyD;IAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAChC,mCAAmC;QACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE7D,uFAAuF;QACvF,kIAAkI;QAClI,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,SAAS,CAAC,iBAAiB,EAAE,2CAA2C,CAAC,CAAC;QACtF,CAAC;QAED,kDAAkD;QAClD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAE7D,8DAA8D;QAC9D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAExB,kCAAkC;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,6BAA6B;QAC7B,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAmC,OAAuB;IACnF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,SAAS,CAAC,iBAAiB,EAAE,yDAAyD,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,IAAY,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAmC,OAAuB;IACtF,OAAO,OAAO,CAAC,QAA4B,CAAC;AAC9C,CAAC"}
@@ -53,3 +53,4 @@ export class BearerAuthStrategy {
53
53
  return user;
54
54
  }
55
55
  }
56
+ //# sourceMappingURL=bearer-auth-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bearer-auth-strategy.js","sourceRoot":"","sources":["../../../src/auth/bearer-auth-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,kBAAkB;IAC7B;;OAEG;IACH,YAA6B,QAAiD;QAAjD,aAAQ,GAAR,QAAQ,CAAyC;IAAG,CAAC;IAElF;;;OAGG;IACH,kBAAkB,CAAC,GAAmB;QACpC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,KAAa;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -22,3 +22,4 @@ export function getExpressApiConfig() {
22
22
  export function resetExpressApiConfig() {
23
23
  currentConfig = { ...defaultConfig };
24
24
  }
25
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAUA,MAAM,aAAa,GAA2B;IAC5C,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,IAAI,aAAa,GAA2B,EAAE,GAAG,aAAa,EAAE,CAAC;AAEjE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAuC;IACzE,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAA4B,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;AACvC,CAAC"}
@@ -64,3 +64,4 @@ export async function catchAllMiddleware(error, _, res, next) {
64
64
  res.status(apiResponse.status);
65
65
  res.send(apiResponse);
66
66
  }
67
+ //# sourceMappingURL=error-handling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../src/error-handling.ts"],"names":[],"mappings":"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"}
@@ -134,3 +134,4 @@ export const getHttpStatusCodeReasonPhrase = (statusCode) => {
134
134
  };
135
135
  return phrases[statusCode] || 'Unknown Status Code';
136
136
  };
137
+ //# sourceMappingURL=http-status-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-status-codes.js","sourceRoot":"","sources":["../../src/http-status-codes.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -13,3 +13,4 @@ export * from './router';
13
13
  export * from './thread-local/thread-local-storage';
14
14
  export * from './thread-local/thread-local-storage-middleware';
15
15
  export * from './utils/express.utils';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,qCAAqC,CAAC;AACpD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uBAAuB,CAAC"}
@@ -86,3 +86,4 @@ export async function createRateLimiterMiddleware(config) {
86
86
  * you might want direct control over rate limit management.
87
87
  */
88
88
  export { InMemoryRateLimiter };
89
+ //# sourceMappingURL=in-memory-rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-rate-limiter.js","sourceRoot":"","sources":["../../../src/rate-limit/in-memory-rate-limiter.ts"],"names":[],"mappings":"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"}
@@ -28,3 +28,4 @@ export function addRateLimitHeaders(res, result, limitPoints, duration) {
28
28
  export function msToSeconds(ms) {
29
29
  return Math.ceil(ms / MILLIS_PER_SECOND);
30
30
  }
31
+ //# sourceMappingURL=rate-limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/rate-limit/rate-limit.ts"],"names":[],"mappings":"AAGA,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAoB,EACpB,MAAuB,EACvB,WAAmB,EACnB,QAAgB;IAEhB,OAAO,CACL,GAAG;QACD,oEAAoE;SACnE,MAAM,CAAC,mBAAmB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,6CAA6C;SAC5C,MAAM,CAAC,uBAAuB,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7D,iEAAiE;SAChE,MAAM,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC;QACrF,qEAAqE;SACpE,MAAM,CAAC,oBAAoB,EAAE,GAAG,WAAW,MAAM,QAAQ,yBAAyB,CAAC,CACvF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;AAC3C,CAAC"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=rate-limit.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.types.js","sourceRoot":"","sources":["../../../src/rate-limit/rate-limit.types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
- import { ExpressApplication } from './utils/express.utils';
2
1
  import { DeleteEndpoint, GetEndpoint, PatchEndpoint, PostEndpoint, PutEndpoint, RequestContext, ResponseOrValue } from './router';
2
+ import { ExpressApplication } from './utils/express.utils';
3
3
  /**
4
4
  * Helper utility for organizing and mounting routes.
5
5
  * Provides a fluent interface for registering multiple handlers.
@@ -38,3 +38,4 @@ export class RouteTable {
38
38
  export function createRouteTable(app) {
39
39
  return new RouteTable(app);
40
40
  }
41
+ //# sourceMappingURL=route-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-table.js","sourceRoot":"","sources":["../../src/route-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EACT,QAAQ,GAMT,MAAM,UAAU,CAAC;AAGlB;;;GAGG;AACH,MAAM,OAAO,UAAU;IACrB,YAA6B,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAIxD,GAAG,CACD,IAAY,EACZ,aAAyG;QAEzG,MAAM,QAAQ,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAC9F,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAA0B,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAe,IAAY,EAAE,QAAoC;QACnE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAe,IAAY,EAAE,QAAqC;QACrE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAe,IAAY,EAAE,QAAmC;QACjE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAID,MAAM,CAAC,IAAY,EAAE,aAAwE;QAC3F,MAAM,QAAQ,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAC9F,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAuB;IACtD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
@@ -55,14 +55,14 @@ export type GetListEndpoint<ResultElementType = unknown> = EndpointBase<RequestC
55
55
  /** Descriptor for GET routes. */
56
56
  export type GetEndpoint<Result = unknown> = EndpointBase<RequestContext, Result>;
57
57
  /** Descriptor for POST routes. */
58
- export interface PostEndpoint<Body = unknown, Result = unknown> extends EndpointBase<RequestContext<Body>, Result> {
58
+ export interface PostEndpoint<Body = unknown, Result = void> extends EndpointBase<RequestContext<Body>, Result> {
59
59
  /** Request body validator. */
60
60
  $body: Body extends object ? ObjectAssertion<Body> : Assertion<Body>;
61
61
  }
62
62
  /** Same as POST. Used for full object updates. */
63
- export type PutEndpoint<Body = unknown, Result = unknown> = PostEndpoint<Body, Result>;
63
+ export type PutEndpoint<Body = unknown, Result = void> = PostEndpoint<Body, Result>;
64
64
  /** Same as PUT. While PUT is used for the whole object update, PATCH is used for a partial update. */
65
- export type PatchEndpoint<Body = unknown, Result = unknown> = PutEndpoint<Body, Result>;
65
+ export type PatchEndpoint<Body = unknown, Result = void> = PutEndpoint<Body, Result>;
66
66
  /** Descriptor for DELETE routes. */
67
67
  export type DeleteEndpoint = EndpointBase<RequestContext, void>;
68
68
  /** Union type for all route registration info objects. */
@@ -1,8 +1,8 @@
1
- import { assertTruthy, callValueAssertion, getMessageFromError, validateObject, } from '@fishka/assertions';
1
+ import { callValueAssertion, getMessageFromError, validateObject, } from '@fishka/assertions';
2
2
  import * as url from 'url';
3
- import { HttpError, URL_PARAMETER_INFO, assertHttp } from './api.types';
4
- import { HTTP_BAD_REQUEST, HTTP_OK } from './http-status-codes';
3
+ import { assertHttp, HttpError, URL_PARAMETER_INFO } from './api.types';
5
4
  import { catchRouteErrors } from './error-handling';
5
+ import { HTTP_BAD_REQUEST, HTTP_OK } from './http-status-codes';
6
6
  import { getRequestLocalStorage } from './thread-local/thread-local-storage';
7
7
  import { wrapAsApiResponse } from './utils/conversion.utils';
8
8
  // ============================================================================
@@ -186,7 +186,7 @@ function newRequestContext(requestBody, req, res) {
186
186
  params: {
187
187
  get: (key) => {
188
188
  const value = req.params[key];
189
- assertTruthy(value, `Path parameter '${key}' not found`);
189
+ assertHttp(value, HTTP_BAD_REQUEST, `Path parameter '${key}' not found`);
190
190
  return value;
191
191
  },
192
192
  tryGet: (key) => req.params[key],
@@ -201,3 +201,4 @@ function newRequestContext(requestBody, req, res) {
201
201
  state: new Map(),
202
202
  };
203
203
  }
204
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
@@ -22,3 +22,4 @@ export function createTlsMiddleware() {
22
22
  });
23
23
  };
24
24
  }
25
+ //# sourceMappingURL=thread-local-storage-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-local-storage-middleware.js","sourceRoot":"","sources":["../../../src/thread-local/thread-local-storage-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,KAAK,EAAE,GAAmB,EAAE,IAAqB,EAAE,IAAkB,EAAiB,EAAE;QAC7F,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,UAAU,GAAI,GAA+B,CAAC,SAAS,IAAI,QAAQ,CAAC;QAC1E,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAE7E,8CAA8C;QAC9C,MAAM,qBAAqB,CACzB;YACE,SAAS;SACV,EACD,KAAK,IAAI,EAAE;YACT,IAAI,EAAE,CAAC;QACT,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -25,3 +25,4 @@ export function getRequestLocalStorage() {
25
25
  export async function runWithRequestTlsData(data, callback) {
26
26
  return asyncLocalStorage.run(data, callback);
27
27
  }
28
+ //# sourceMappingURL=thread-local-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-local-storage.js","sourceRoot":"","sources":["../../../src/thread-local/thread-local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAchD;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAmB,CAAC;AAEnE;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAI,IAAqB,EAAE,QAA0B;IAC9F,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
@@ -20,3 +20,4 @@ export function wrapAsApiResponse(apiResponseOrResultValue) {
20
20
  : { result: apiResponseOrResultValue }; // Wrap the raw value into the correct ApiResponse form.
21
21
  return apiResponse;
22
22
  }
23
+ //# sourceMappingURL=conversion.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversion.utils.js","sourceRoot":"","sources":["../../../src/utils/conversion.utils.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAoB;IAClD,MAAM,gBAAgB,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7F,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAc,wBAA4C;IACzF,IAAI,WAAW,GAAmB,wBAA0C,CAAC;IAC7E,WAAW,GAAG,WAAW,EAAE,MAAM;QAC/B,CAAC,CAAC,WAAW,CAAC,kEAAkE;QAChF,CAAC,CAAiB,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC,wDAAwD;IAClH,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=express.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"express.utils.js","sourceRoot":"","sources":["../../../src/utils/express.utils.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fishka/express",
3
- "version": "0.9.8",
3
+ "version": "0.9.10",
4
4
  "description": "Express.js extension with built-in validation, and type safety",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",