wnodex 0.1.0 → 0.2.2

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 (207) hide show
  1. package/.turbo/turbo-build.log +7 -0
  2. package/LICENSE +1 -1
  3. package/README.md +73 -67
  4. package/dist/{schemas/wnodex-config.d.ts → config.d.ts} +14 -9
  5. package/dist/config.d.ts.map +1 -0
  6. package/dist/config.js +22 -0
  7. package/dist/index.d.ts +68 -38
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +126 -41
  10. package/dist/setup-config.d.ts +3 -0
  11. package/dist/setup-config.d.ts.map +1 -0
  12. package/dist/setup-config.js +9 -0
  13. package/dist/setup-middlewares.d.ts +4 -0
  14. package/dist/setup-middlewares.d.ts.map +1 -0
  15. package/dist/setup-middlewares.js +32 -0
  16. package/package.json +51 -15
  17. package/rolldown.config.ts +20 -0
  18. package/src/config.ts +27 -0
  19. package/src/index.ts +149 -38
  20. package/src/setup-config.ts +17 -0
  21. package/src/setup-middlewares.ts +49 -0
  22. package/tests/body-parser.schema.test.ts +57 -0
  23. package/tests/compression.schema.test.ts +27 -0
  24. package/tests/cookie-parser.schema.test.ts +56 -0
  25. package/tests/cors.schema.test.ts +35 -0
  26. package/tests/helmet.schema.test.ts +33 -0
  27. package/tests/hpp.schema.test.ts +31 -0
  28. package/tests/index.test.ts +105 -0
  29. package/tests/passport.schema.test.ts +33 -0
  30. package/tests/rate-limit.schema.test.ts +56 -0
  31. package/tests/session.schema.test.ts +80 -0
  32. package/tsconfig.json +8 -8
  33. package/vitest.config.ts +13 -0
  34. package/dist/consts/cors.d.ts +0 -15
  35. package/dist/consts/cors.d.ts.map +0 -1
  36. package/dist/consts/cors.js +0 -29
  37. package/dist/consts/error-codes.d.ts +0 -10
  38. package/dist/consts/error-codes.d.ts.map +0 -1
  39. package/dist/consts/error-codes.js +0 -12
  40. package/dist/consts/index.d.ts +0 -8
  41. package/dist/consts/index.d.ts.map +0 -1
  42. package/dist/consts/index.js +0 -10
  43. package/dist/consts/log-levels.d.ts +0 -8
  44. package/dist/consts/log-levels.d.ts.map +0 -1
  45. package/dist/consts/log-levels.js +0 -10
  46. package/dist/consts/node-env.d.ts +0 -7
  47. package/dist/consts/node-env.d.ts.map +0 -1
  48. package/dist/consts/node-env.js +0 -9
  49. package/dist/consts/port.d.ts +0 -6
  50. package/dist/consts/port.d.ts.map +0 -1
  51. package/dist/consts/port.js +0 -26
  52. package/dist/consts/rate-limit.d.ts +0 -9
  53. package/dist/consts/rate-limit.d.ts.map +0 -1
  54. package/dist/consts/rate-limit.js +0 -11
  55. package/dist/consts/session.d.ts +0 -6
  56. package/dist/consts/session.d.ts.map +0 -1
  57. package/dist/consts/session.js +0 -8
  58. package/dist/errors/base-error.d.ts +0 -57
  59. package/dist/errors/base-error.d.ts.map +0 -1
  60. package/dist/errors/base-error.js +0 -93
  61. package/dist/errors/config-error.d.ts +0 -20
  62. package/dist/errors/config-error.d.ts.map +0 -1
  63. package/dist/errors/config-error.js +0 -30
  64. package/dist/errors/http-error.d.ts +0 -17
  65. package/dist/errors/http-error.d.ts.map +0 -1
  66. package/dist/errors/http-error.js +0 -24
  67. package/dist/errors/index.d.ts +0 -5
  68. package/dist/errors/index.d.ts.map +0 -1
  69. package/dist/errors/index.js +0 -7
  70. package/dist/errors/validation-error.d.ts +0 -19
  71. package/dist/errors/validation-error.d.ts.map +0 -1
  72. package/dist/errors/validation-error.js +0 -29
  73. package/dist/helpers/get-node-env.d.ts +0 -13
  74. package/dist/helpers/get-node-env.d.ts.map +0 -1
  75. package/dist/helpers/get-node-env.js +0 -27
  76. package/dist/helpers/index.d.ts +0 -5
  77. package/dist/helpers/index.d.ts.map +0 -1
  78. package/dist/helpers/index.js +0 -7
  79. package/dist/helpers/is-development.d.ts +0 -9
  80. package/dist/helpers/is-development.d.ts.map +0 -1
  81. package/dist/helpers/is-development.js +0 -16
  82. package/dist/helpers/setup-config.d.ts +0 -12
  83. package/dist/helpers/setup-config.d.ts.map +0 -1
  84. package/dist/helpers/setup-config.js +0 -21
  85. package/dist/helpers/setup-middlewares.d.ts +0 -12
  86. package/dist/helpers/setup-middlewares.d.ts.map +0 -1
  87. package/dist/helpers/setup-middlewares.js +0 -45
  88. package/dist/logger.d.ts +0 -3
  89. package/dist/logger.d.ts.map +0 -1
  90. package/dist/logger.js +0 -21
  91. package/dist/middlewares/compression.d.ts +0 -18
  92. package/dist/middlewares/compression.d.ts.map +0 -1
  93. package/dist/middlewares/compression.js +0 -26
  94. package/dist/middlewares/cookie-parser.ts.d.ts +0 -20
  95. package/dist/middlewares/cookie-parser.ts.d.ts.map +0 -1
  96. package/dist/middlewares/cookie-parser.ts.js +0 -33
  97. package/dist/middlewares/cors.d.ts +0 -22
  98. package/dist/middlewares/cors.d.ts.map +0 -1
  99. package/dist/middlewares/cors.js +0 -34
  100. package/dist/middlewares/error-handler.d.ts +0 -21
  101. package/dist/middlewares/error-handler.d.ts.map +0 -1
  102. package/dist/middlewares/error-handler.js +0 -43
  103. package/dist/middlewares/helmet.d.ts +0 -16
  104. package/dist/middlewares/helmet.d.ts.map +0 -1
  105. package/dist/middlewares/helmet.js +0 -28
  106. package/dist/middlewares/hpp.d.ts +0 -18
  107. package/dist/middlewares/hpp.d.ts.map +0 -1
  108. package/dist/middlewares/hpp.js +0 -30
  109. package/dist/middlewares/index.d.ts +0 -10
  110. package/dist/middlewares/index.d.ts.map +0 -1
  111. package/dist/middlewares/index.js +0 -12
  112. package/dist/middlewares/passport.d.ts +0 -16
  113. package/dist/middlewares/passport.d.ts.map +0 -1
  114. package/dist/middlewares/passport.js +0 -27
  115. package/dist/middlewares/rate-limit.d.ts +0 -23
  116. package/dist/middlewares/rate-limit.d.ts.map +0 -1
  117. package/dist/middlewares/rate-limit.js +0 -35
  118. package/dist/middlewares/session.d.ts +0 -16
  119. package/dist/middlewares/session.d.ts.map +0 -1
  120. package/dist/middlewares/session.js +0 -23
  121. package/dist/schemas/compression.d.ts +0 -5
  122. package/dist/schemas/compression.d.ts.map +0 -1
  123. package/dist/schemas/compression.js +0 -5
  124. package/dist/schemas/cookie-parser.d.ts +0 -9
  125. package/dist/schemas/cookie-parser.d.ts.map +0 -1
  126. package/dist/schemas/cookie-parser.js +0 -14
  127. package/dist/schemas/cors.d.ts +0 -6
  128. package/dist/schemas/cors.d.ts.map +0 -1
  129. package/dist/schemas/cors.js +0 -9
  130. package/dist/schemas/error-metadata.d.ts +0 -18
  131. package/dist/schemas/error-metadata.d.ts.map +0 -1
  132. package/dist/schemas/error-metadata.js +0 -12
  133. package/dist/schemas/helmet.d.ts +0 -6
  134. package/dist/schemas/helmet.d.ts.map +0 -1
  135. package/dist/schemas/helmet.js +0 -8
  136. package/dist/schemas/hpp.d.ts +0 -5
  137. package/dist/schemas/hpp.d.ts.map +0 -1
  138. package/dist/schemas/hpp.js +0 -8
  139. package/dist/schemas/index.d.ts +0 -13
  140. package/dist/schemas/index.d.ts.map +0 -1
  141. package/dist/schemas/index.js +0 -15
  142. package/dist/schemas/node-env.d.ts +0 -16
  143. package/dist/schemas/node-env.d.ts.map +0 -1
  144. package/dist/schemas/node-env.js +0 -8
  145. package/dist/schemas/passport.d.ts +0 -6
  146. package/dist/schemas/passport.d.ts.map +0 -1
  147. package/dist/schemas/passport.js +0 -8
  148. package/dist/schemas/port.d.ts +0 -4
  149. package/dist/schemas/port.d.ts.map +0 -1
  150. package/dist/schemas/port.js +0 -16
  151. package/dist/schemas/rate-limit.d.ts +0 -9
  152. package/dist/schemas/rate-limit.d.ts.map +0 -1
  153. package/dist/schemas/rate-limit.js +0 -26
  154. package/dist/schemas/session.d.ts +0 -18
  155. package/dist/schemas/session.d.ts.map +0 -1
  156. package/dist/schemas/session.js +0 -32
  157. package/dist/schemas/wnodex-config.d.ts.map +0 -1
  158. package/dist/schemas/wnodex-config.js +0 -24
  159. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  160. package/dist/wnodex.d.ts +0 -69
  161. package/dist/wnodex.d.ts.map +0 -1
  162. package/dist/wnodex.js +0 -131
  163. package/src/consts/cors.ts +0 -27
  164. package/src/consts/error-codes.ts +0 -9
  165. package/src/consts/index.ts +0 -7
  166. package/src/consts/log-levels.ts +0 -7
  167. package/src/consts/node-env.ts +0 -6
  168. package/src/consts/port.ts +0 -23
  169. package/src/consts/rate-limit.ts +0 -9
  170. package/src/consts/session.ts +0 -6
  171. package/src/errors/base-error.ts +0 -111
  172. package/src/errors/config-error.ts +0 -31
  173. package/src/errors/http-error.ts +0 -21
  174. package/src/errors/index.ts +0 -4
  175. package/src/errors/validation-error.ts +0 -30
  176. package/src/helpers/get-node-env.ts +0 -27
  177. package/src/helpers/index.ts +0 -4
  178. package/src/helpers/is-development.ts +0 -15
  179. package/src/helpers/setup-config.ts +0 -25
  180. package/src/helpers/setup-middlewares.ts +0 -56
  181. package/src/logger.ts +0 -22
  182. package/src/middlewares/compression.ts +0 -32
  183. package/src/middlewares/cookie-parser.ts.ts +0 -37
  184. package/src/middlewares/cors.ts +0 -35
  185. package/src/middlewares/error-handler.ts +0 -54
  186. package/src/middlewares/helmet.ts +0 -29
  187. package/src/middlewares/hpp.ts +0 -31
  188. package/src/middlewares/index.ts +0 -9
  189. package/src/middlewares/passport.ts +0 -30
  190. package/src/middlewares/rate-limit.ts +0 -39
  191. package/src/middlewares/session.ts +0 -25
  192. package/src/schemas/compression.ts +0 -8
  193. package/src/schemas/cookie-parser.ts +0 -21
  194. package/src/schemas/cors.ts +0 -13
  195. package/src/schemas/error-metadata.ts +0 -15
  196. package/src/schemas/helmet.ts +0 -11
  197. package/src/schemas/hpp.ts +0 -9
  198. package/src/schemas/index.ts +0 -12
  199. package/src/schemas/node-env.ts +0 -11
  200. package/src/schemas/passport.ts +0 -11
  201. package/src/schemas/port.ts +0 -22
  202. package/src/schemas/rate-limit.ts +0 -33
  203. package/src/schemas/session.ts +0 -40
  204. package/src/schemas/wnodex-config.ts +0 -26
  205. package/src/wnodex.ts +0 -152
  206. package/tsconfig.lib.json +0 -13
  207. package/tsconfig.tsbuildinfo +0 -1
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseError = void 0;
4
- const error_metadata_js_1 = require("../schemas/error-metadata.js");
5
- /**
6
- * Base class for all custom application errors.
7
- * Extends the native `Error` to preserve stack traces and adds structured, validated metadata.
8
- *
9
- * Provides consistent error information for debugging and structured logging.
10
- */
11
- class BaseError extends Error {
12
- /**
13
- * The machine-readable error code, suitable for programmatic handling.
14
- * @readonly
15
- */
16
- code;
17
- /**
18
- * The optional cause that triggered this error instance.
19
- * May be any value, but usually another Error object for chained errors.
20
- * @override
21
- * @readonly
22
- */
23
- cause;
24
- /**
25
- * Additional error context for debugging (may contain any serializable data).
26
- * @readonly
27
- */
28
- context;
29
- /**
30
- * Constructs a new instance of BaseError.
31
- * Validates the provided metadata to ensure it matches the ErrorMetadataSchema.
32
- * @param message The human-readable error message.
33
- * @param metadata Structured metadata for this error instance. It will be validated.
34
- * @throws {Error} Throws if the metadata is invalid according to ErrorMetadataSchema.
35
- * @example
36
- * const err = new BaseError('User not found', { code: 'USER_NOT_FOUND' });
37
- */
38
- constructor(message, metadata) {
39
- super(message);
40
- // Sets the name property to the actual class name (useful with inheritance).
41
- this.name = new.target.name;
42
- const validatedMetadata = this.validateMetadata(metadata, message);
43
- this.code = validatedMetadata.code;
44
- this.cause = validatedMetadata.cause;
45
- this.context = validatedMetadata.context;
46
- // Ensures proper prototype chain for custom errors (required for ES5/TypeScript).
47
- Object.setPrototypeOf(this, new.target.prototype);
48
- }
49
- /**
50
- * Validates the error metadata using ErrorMetadataSchema.
51
- * Throws a clear error if validation fails, including the original Zod error as the cause.
52
- * @param input The raw metadata input.
53
- * @param parentErrorMessage The message of the error being constructed, for improved diagnostics.
54
- * @returns {ErrorMetadataOutput} Parsed and validated metadata.
55
- * @throws {Error} If the metadata does not pass validation.
56
- * @example
57
- * this.validateMetadata({ code: 'INVALID', context: { foo: 42 } }, 'Something failed');
58
- */
59
- validateMetadata(input, parentErrorMessage) {
60
- const result = error_metadata_js_1.ErrorMetadataSchema.safeParse(input);
61
- if (!result.success) {
62
- const errorMessage = `Invalid metadata provided for error "${parentErrorMessage}" (Code: ${input.code || 'N/A'}).`;
63
- throw new Error(errorMessage, { cause: result.error });
64
- }
65
- return result.data;
66
- }
67
- /**
68
- * Returns a plain object representation of the error,
69
- * useful for structured logging, serialization, or external error reporting.
70
- * Nested error causes include their name, message, and stack trace.
71
- * @returns {object} A plain, serializable object representing this error.
72
- * @example
73
- * JSON.stringify(err.toJSON());
74
- */
75
- toJSON() {
76
- const normalizedCause = this.cause instanceof Error
77
- ? {
78
- name: this.cause.name,
79
- message: this.cause.message,
80
- stack: this.cause.stack,
81
- }
82
- : this.cause;
83
- return {
84
- name: this.name,
85
- message: this.message,
86
- code: this.code,
87
- cause: normalizedCause,
88
- context: this.context,
89
- stack: this.stack,
90
- };
91
- }
92
- }
93
- exports.BaseError = BaseError;
@@ -1,20 +0,0 @@
1
- import { BaseError } from './base-error.js';
2
- /**
3
- * Custom error class for configuration failures.
4
- * Represents issues occurring during loading, parsing, or applying application configuration.
5
- * Automatically sets the error code to `"CONFIG_ERROR"`. Useful for problems involving environment
6
- * variables, config files, or settings.
7
- */
8
- export declare class ConfigError extends BaseError {
9
- /**
10
- * Constructs a new ConfigError instance.
11
- * @param message The human-readable error message describing the configuration problem.
12
- * @param cause Optional original error or value that triggered the configuration failure, such as a file system or validation error.
13
- * @param context Optional additional context data, such as the config file path, setting name, or problematic value.
14
- *
15
- * @example
16
- * throw new ConfigError('Failed to load config file', readError, { file: './config.json' });
17
- */
18
- constructor(message: string, cause?: unknown, context?: Record<string | number | symbol, unknown>);
19
- }
20
- //# sourceMappingURL=config-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-error.d.ts","sourceRoot":"","sources":["../../src/errors/config-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACxC;;;;;;;;OAQG;gBAED,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;CAQtD"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConfigError = void 0;
4
- const error_codes_js_1 = require("../consts/error-codes.js");
5
- const base_error_js_1 = require("./base-error.js");
6
- /**
7
- * Custom error class for configuration failures.
8
- * Represents issues occurring during loading, parsing, or applying application configuration.
9
- * Automatically sets the error code to `"CONFIG_ERROR"`. Useful for problems involving environment
10
- * variables, config files, or settings.
11
- */
12
- class ConfigError extends base_error_js_1.BaseError {
13
- /**
14
- * Constructs a new ConfigError instance.
15
- * @param message The human-readable error message describing the configuration problem.
16
- * @param cause Optional original error or value that triggered the configuration failure, such as a file system or validation error.
17
- * @param context Optional additional context data, such as the config file path, setting name, or problematic value.
18
- *
19
- * @example
20
- * throw new ConfigError('Failed to load config file', readError, { file: './config.json' });
21
- */
22
- constructor(message, cause, context) {
23
- super(message, {
24
- code: error_codes_js_1.ERROR_CODES.CONFIG_ERROR,
25
- cause,
26
- context,
27
- });
28
- }
29
- }
30
- exports.ConfigError = ConfigError;
@@ -1,17 +0,0 @@
1
- /**
2
- * Custom HTTP error class with status code.
3
- * Represents an HTTP error with both status code and message.
4
- */
5
- export declare class HttpError extends Error {
6
- readonly statusCode: number;
7
- /**
8
- * Creates an instance of HttpError.
9
- * @param message Error message describing the problem.
10
- * @param statusCode HTTP status code, default is 500.
11
- * @example
12
- * // Throws an error with 404 status code
13
- * throw new HttpError('Not Found', 404);
14
- */
15
- constructor(message: string, statusCode?: number);
16
- }
17
- //# sourceMappingURL=http-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-error.d.ts","sourceRoot":"","sources":["../../src/errors/http-error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC;;;;;;;OAOG;gBACS,OAAO,EAAE,MAAM,EAAE,UAAU,SAAM;CAK9C"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HttpError = void 0;
4
- /**
5
- * Custom HTTP error class with status code.
6
- * Represents an HTTP error with both status code and message.
7
- */
8
- class HttpError extends Error {
9
- statusCode;
10
- /**
11
- * Creates an instance of HttpError.
12
- * @param message Error message describing the problem.
13
- * @param statusCode HTTP status code, default is 500.
14
- * @example
15
- * // Throws an error with 404 status code
16
- * throw new HttpError('Not Found', 404);
17
- */
18
- constructor(message, statusCode = 500) {
19
- super(message);
20
- this.statusCode = statusCode;
21
- this.name = this.constructor.name;
22
- }
23
- }
24
- exports.HttpError = HttpError;
@@ -1,5 +0,0 @@
1
- export * from './base-error.js';
2
- export * from './config-error.js';
3
- export * from './http-error.js';
4
- export * from './validation-error.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./base-error.js"), exports);
5
- tslib_1.__exportStar(require("./config-error.js"), exports);
6
- tslib_1.__exportStar(require("./http-error.js"), exports);
7
- tslib_1.__exportStar(require("./validation-error.js"), exports);
@@ -1,19 +0,0 @@
1
- import { BaseError } from './base-error.js';
2
- /**
3
- * Custom error class for validation failures.
4
- * Used for input errors, schema violations, or data integrity issues.
5
- * Automatically sets the error code to `"VALIDATION_ERROR"` to allow standard handling of validation errors.
6
- */
7
- export declare class ValidationError extends BaseError {
8
- /**
9
- * Constructs a new ValidationError instance.
10
- * @param message The human-readable error message describing what failed validation.
11
- * @param cause Optional original error or value that caused the validation failure, such as a ZodError or validation detail.
12
- * @param context Optional additional context data, for example the invalid field, config path, or offending input.
13
- *
14
- * @example
15
- * throw new ValidationError('Invalid email format', zodResult.error, { field: 'email' });
16
- */
17
- constructor(message: string, cause?: unknown, context?: Record<string | number | symbol, unknown>);
18
- }
19
- //# sourceMappingURL=validation-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation-error.d.ts","sourceRoot":"","sources":["../../src/errors/validation-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C;;;;;;;;OAQG;gBAED,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;CAQtD"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ValidationError = void 0;
4
- const error_codes_js_1 = require("../consts/error-codes.js");
5
- const base_error_js_1 = require("./base-error.js");
6
- /**
7
- * Custom error class for validation failures.
8
- * Used for input errors, schema violations, or data integrity issues.
9
- * Automatically sets the error code to `"VALIDATION_ERROR"` to allow standard handling of validation errors.
10
- */
11
- class ValidationError extends base_error_js_1.BaseError {
12
- /**
13
- * Constructs a new ValidationError instance.
14
- * @param message The human-readable error message describing what failed validation.
15
- * @param cause Optional original error or value that caused the validation failure, such as a ZodError or validation detail.
16
- * @param context Optional additional context data, for example the invalid field, config path, or offending input.
17
- *
18
- * @example
19
- * throw new ValidationError('Invalid email format', zodResult.error, { field: 'email' });
20
- */
21
- constructor(message, cause, context) {
22
- super(message, {
23
- code: error_codes_js_1.ERROR_CODES.VALIDATION_ERROR,
24
- cause,
25
- context,
26
- });
27
- }
28
- }
29
- exports.ValidationError = ValidationError;
@@ -1,13 +0,0 @@
1
- import { type NodeEnv } from '../schemas/node-env.js';
2
- /**
3
- * Parses the `NODE_ENV` environment variable from `process.env`.
4
- * @returns {NodeEnv} The validated environment value.
5
- * @throws {ValidationError} Thrown if `NODE_ENV` is invalid or not defined according to schema.
6
- *
7
- * @example
8
- * // Example usage:
9
- * const env = getNodeEnv();
10
- * // env will be one of 'production', 'development', etc.
11
- */
12
- export declare function getNodeEnv(): NodeEnv;
13
- //# sourceMappingURL=get-node-env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-node-env.d.ts","sourceRoot":"","sources":["../../src/helpers/get-node-env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,wBAAwB,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAYpC"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNodeEnv = getNodeEnv;
4
- const node_env_js_1 = require("../consts/node-env.js");
5
- const validation_error_js_1 = require("../errors/validation-error.js");
6
- const node_env_js_2 = require("../schemas/node-env.js");
7
- /**
8
- * Parses the `NODE_ENV` environment variable from `process.env`.
9
- * @returns {NodeEnv} The validated environment value.
10
- * @throws {ValidationError} Thrown if `NODE_ENV` is invalid or not defined according to schema.
11
- *
12
- * @example
13
- * // Example usage:
14
- * const env = getNodeEnv();
15
- * // env will be one of 'production', 'development', etc.
16
- */
17
- function getNodeEnv() {
18
- const rawNodeEnv = process.env.NODE_ENV;
19
- const result = node_env_js_2.NodeEnvSchema.safeParse(rawNodeEnv);
20
- if (!result.success) {
21
- throw new validation_error_js_1.ValidationError('Invalid Node Env', result.error, {
22
- provided: rawNodeEnv,
23
- expected: Object.values(node_env_js_1.NODE_ENV_VALUES).join('|'),
24
- });
25
- }
26
- return result.data;
27
- }
@@ -1,5 +0,0 @@
1
- export * from './get-node-env.js';
2
- export * from './is-development.js';
3
- export * from './setup-config.js';
4
- export * from './setup-middlewares.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./get-node-env.js"), exports);
5
- tslib_1.__exportStar(require("./is-development.js"), exports);
6
- tslib_1.__exportStar(require("./setup-config.js"), exports);
7
- tslib_1.__exportStar(require("./setup-middlewares.js"), exports);
@@ -1,9 +0,0 @@
1
- /**
2
- * Returns true if process.env.NODE_ENV is set to 'development'.
3
- * @returns {boolean} Returns `true` if the current Node environment is development, otherwise `false`.
4
- *
5
- * @example
6
- * const dev = isDevelopment();
7
- */
8
- export declare function isDevelopment(): boolean;
9
- //# sourceMappingURL=is-development.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-development.d.ts","sourceRoot":"","sources":["../../src/helpers/is-development.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAIvC"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isDevelopment = isDevelopment;
4
- const node_env_js_1 = require("../consts/node-env.js");
5
- const get_node_env_js_1 = require("./get-node-env.js");
6
- /**
7
- * Returns true if process.env.NODE_ENV is set to 'development'.
8
- * @returns {boolean} Returns `true` if the current Node environment is development, otherwise `false`.
9
- *
10
- * @example
11
- * const dev = isDevelopment();
12
- */
13
- function isDevelopment() {
14
- const nodeEnv = (0, get_node_env_js_1.getNodeEnv)();
15
- return nodeEnv === node_env_js_1.NODE_ENV_VALUES.DEVELOPMENT;
16
- }
@@ -1,12 +0,0 @@
1
- import { WnodexConfigInput, WnodexConfigOutput } from '../schemas';
2
- /**
3
- * Validates the provided config using NodexConfigSchema.
4
- * Throws ValidationError if validation fails.
5
- * @param config Raw configuration input for Nodex.
6
- * @returns Validated configuration.
7
- * @throws {ConfigError} If configuration is invalid.
8
- * @example
9
- * const config = setupConfig(rawConfig);
10
- */
11
- export declare function setupConfig(config: WnodexConfigInput): WnodexConfigOutput;
12
- //# sourceMappingURL=setup-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-config.d.ts","sourceRoot":"","sources":["../../src/helpers/setup-config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,CAQzE"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupConfig = setupConfig;
4
- const config_error_js_1 = require("../errors/config-error.js");
5
- const schemas_1 = require("../schemas");
6
- /**
7
- * Validates the provided config using NodexConfigSchema.
8
- * Throws ValidationError if validation fails.
9
- * @param config Raw configuration input for Nodex.
10
- * @returns Validated configuration.
11
- * @throws {ConfigError} If configuration is invalid.
12
- * @example
13
- * const config = setupConfig(rawConfig);
14
- */
15
- function setupConfig(config) {
16
- const result = schemas_1.WnodexConfigSchema.safeParse(config);
17
- if (!result.success) {
18
- throw new config_error_js_1.ConfigError('Invalid Nodex Configuration', result.error);
19
- }
20
- return result.data;
21
- }
@@ -1,12 +0,0 @@
1
- import { type Application } from 'express';
2
- import type { WnodexConfigOutput } from '../schemas/wnodex-config.js';
3
- /**
4
- * Sets up Express middlewares for the application.
5
- * Currently applies the helmet security middleware.
6
- * @param app The express application instance.
7
- * @param config The Nodex parsed config object.
8
- * @example
9
- * this.config = setupMiddlewares();
10
- */
11
- export declare function setupMiddlewares(app: Application, config: WnodexConfigOutput): void;
12
- //# sourceMappingURL=setup-middlewares.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-middlewares.d.ts","sourceRoot":"","sources":["../../src/helpers/setup-middlewares.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAWpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,kBAAkB,GACzB,IAAI,CA+BN"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupMiddlewares = setupMiddlewares;
4
- const tslib_1 = require("tslib");
5
- const express_1 = tslib_1.__importDefault(require("express"));
6
- const compression_js_1 = require("../middlewares/compression.js");
7
- const cookie_parser_ts_js_1 = require("../middlewares/cookie-parser.ts.js");
8
- const cors_js_1 = require("../middlewares/cors.js");
9
- const error_handler_js_1 = require("../middlewares/error-handler.js");
10
- const helmet_js_1 = require("../middlewares/helmet.js");
11
- const hpp_js_1 = require("../middlewares/hpp.js");
12
- const passport_js_1 = require("../middlewares/passport.js");
13
- const rate_limit_js_1 = require("../middlewares/rate-limit.js");
14
- const session_js_1 = require("../middlewares/session.js");
15
- /**
16
- * Sets up Express middlewares for the application.
17
- * Currently applies the helmet security middleware.
18
- * @param app The express application instance.
19
- * @param config The Nodex parsed config object.
20
- * @example
21
- * this.config = setupMiddlewares();
22
- */
23
- function setupMiddlewares(app, config) {
24
- // Helmet
25
- (0, helmet_js_1.configureHelmet)(app, config);
26
- // CORS
27
- (0, cors_js_1.configureCors)(app, config);
28
- // Body Parsers
29
- app.use(express_1.default.json());
30
- app.use(express_1.default.urlencoded({ extended: true }));
31
- // cookie-parser
32
- (0, cookie_parser_ts_js_1.configureCookieParser)(app, config);
33
- // compression
34
- (0, compression_js_1.configureCompression)(app, config);
35
- // express-rate-limit
36
- (0, rate_limit_js_1.configureRateLimit)(app, config);
37
- // hpp
38
- (0, hpp_js_1.configureHpp)(app, config);
39
- // express-session - Session management
40
- (0, session_js_1.configureSession)(app, config);
41
- // passport - Authentication middleware
42
- (0, passport_js_1.configurePassport)(app, config);
43
- // Error Handler (keep it last)
44
- app.use(error_handler_js_1.errorHandler);
45
- }
package/dist/logger.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import pino from 'pino';
2
- export declare const logger: pino.Logger<never, boolean>;
3
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAiBxB,eAAO,MAAM,MAAM,6BAEE,CAAC"}
package/dist/logger.js DELETED
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logger = void 0;
4
- const tslib_1 = require("tslib");
5
- const pino_pretty_1 = tslib_1.__importDefault(require("pino-pretty"));
6
- const pino_1 = tslib_1.__importDefault(require("pino"));
7
- const log_levels_js_1 = require("./consts/log-levels.js");
8
- const is_development_js_1 = require("./helpers/is-development.js");
9
- const prettyStream = (0, pino_pretty_1.default)({
10
- colorize: true,
11
- levelFirst: true,
12
- translateTime: true,
13
- ignore: 'pid,hostname',
14
- singleLine: true,
15
- });
16
- const baseOptions = {
17
- level: log_levels_js_1.LOG_LEVELS.INFO,
18
- };
19
- exports.logger = (0, is_development_js_1.isDevelopment)()
20
- ? (0, pino_1.default)(baseOptions, prettyStream)
21
- : (0, pino_1.default)(baseOptions);
@@ -1,18 +0,0 @@
1
- import type { Application } from 'express';
2
- import type { WnodexConfigOutput } from '../schemas/wnodex-config.js';
3
- /**
4
- * Configures compression middleware to compress HTTP responses,
5
- * improving network performance by reducing response size.
6
- * Reads a flag from the app configuration to enable or disable compression.
7
- * @param app Express Application instance to apply compression middleware on.
8
- * @param config Typed Nodex configuration object containing compression option.
9
- *
10
- * @returns The result of app.use(compression()) if enabled, otherwise undefined.
11
- *
12
- * @example
13
- * private setupMiddlewares() {
14
- * configureCors(this.app, this.config);
15
- * }
16
- */
17
- export declare function configureCompression(app: Application, config: WnodexConfigOutput): Application | undefined;
18
- //# sourceMappingURL=compression.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/middlewares/compression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,kBAAkB,2BAS3B"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configureCompression = configureCompression;
4
- const tslib_1 = require("tslib");
5
- const compression_1 = tslib_1.__importDefault(require("compression"));
6
- /**
7
- * Configures compression middleware to compress HTTP responses,
8
- * improving network performance by reducing response size.
9
- * Reads a flag from the app configuration to enable or disable compression.
10
- * @param app Express Application instance to apply compression middleware on.
11
- * @param config Typed Nodex configuration object containing compression option.
12
- *
13
- * @returns The result of app.use(compression()) if enabled, otherwise undefined.
14
- *
15
- * @example
16
- * private setupMiddlewares() {
17
- * configureCors(this.app, this.config);
18
- * }
19
- */
20
- function configureCompression(app, config) {
21
- const { compression: isCompressionEnabled } = config;
22
- if (!isCompressionEnabled) {
23
- return;
24
- }
25
- return app.use((0, compression_1.default)());
26
- }
@@ -1,20 +0,0 @@
1
- import type { Application } from 'express';
2
- import type { WnodexConfigOutput } from '../schemas/wnodex-config.js';
3
- /**
4
- * Configures the cookie-parser middleware for the Express app based on the provided configuration.
5
- * @param app The Express application instance to configure.
6
- * @param config The application configuration object, which includes cookieParser options.
7
- * @returns Void.
8
- *
9
- * @example
10
- * ```
11
- * import express from 'express';
12
- * import { configureCookieParser } from './middlewares/cookie-parser';
13
- * import config from './config';
14
- *
15
- * const app = express();
16
- * configureCookieParser(app, config);
17
- * ```
18
- */
19
- export declare function configureCookieParser(app: Application, config: WnodexConfigOutput): Application | undefined;
20
- //# sourceMappingURL=cookie-parser.ts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookie-parser.ts.d.ts","sourceRoot":"","sources":["../../src/middlewares/cookie-parser.ts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,kBAAkB,2BAY3B"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configureCookieParser = configureCookieParser;
4
- const tslib_1 = require("tslib");
5
- const cookie_parser_1 = tslib_1.__importDefault(require("cookie-parser"));
6
- /**
7
- * Configures the cookie-parser middleware for the Express app based on the provided configuration.
8
- * @param app The Express application instance to configure.
9
- * @param config The application configuration object, which includes cookieParser options.
10
- * @returns Void.
11
- *
12
- * @example
13
- * ```
14
- * import express from 'express';
15
- * import { configureCookieParser } from './middlewares/cookie-parser';
16
- * import config from './config';
17
- *
18
- * const app = express();
19
- * configureCookieParser(app, config);
20
- * ```
21
- */
22
- function configureCookieParser(app, config) {
23
- const { cookieParser: options } = config;
24
- if (typeof options === 'boolean') {
25
- if (!options)
26
- return;
27
- return app.use((0, cookie_parser_1.default)());
28
- }
29
- else {
30
- const { secret, options: opts } = options;
31
- return app.use((0, cookie_parser_1.default)(secret, opts));
32
- }
33
- }
@@ -1,22 +0,0 @@
1
- import type { Application } from 'express';
2
- import type { WnodexConfigOutput } from '../schemas/wnodex-config.js';
3
- /**
4
- * Configures the CORS middleware for an Express application.
5
- * Reads the `cors` option from the provided config.
6
- * If the option is a boolean:
7
- * - `false` disables CORS middleware.
8
- * - `true` enables CORS middleware with default settings.
9
- * If the option is an object, it is spread into the CORS middleware options.
10
- * @param app The Express Application instance to attach middleware to.
11
- * @param config Typed configuration input that includes the CORS option.
12
- *
13
- * @returns The Express Application instance with CORS middleware applied,
14
- * or undefined if CORS is disabled.
15
- *
16
- * @example
17
- * private setupMiddlewares() {
18
- * configureCors(this.app, this.config);
19
- * }
20
- */
21
- export declare function configureCors(app: Application, config: WnodexConfigOutput): Application | undefined;
22
- //# sourceMappingURL=cors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/middlewares/cors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,2BAUzE"}