hi-secure 1.0.0

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 (210) hide show
  1. package/dist/adapters/ArgonAdapter.d.ts +8 -0
  2. package/dist/adapters/ArgonAdapter.d.ts.map +1 -0
  3. package/dist/adapters/ArgonAdapter.js +45 -0
  4. package/dist/adapters/ArgonAdapter.js.map +1 -0
  5. package/dist/adapters/BcryptAdapter.d.ts +7 -0
  6. package/dist/adapters/BcryptAdapter.d.ts.map +1 -0
  7. package/dist/adapters/BcryptAdapter.js +48 -0
  8. package/dist/adapters/BcryptAdapter.js.map +1 -0
  9. package/dist/adapters/DomPurifyAdapter.d.ts +13 -0
  10. package/dist/adapters/DomPurifyAdapter.d.ts.map +1 -0
  11. package/dist/adapters/DomPurifyAdapter.js +61 -0
  12. package/dist/adapters/DomPurifyAdapter.js.map +1 -0
  13. package/dist/adapters/ExpressRLAdapter.d.ts +13 -0
  14. package/dist/adapters/ExpressRLAdapter.d.ts.map +1 -0
  15. package/dist/adapters/ExpressRLAdapter.js +68 -0
  16. package/dist/adapters/ExpressRLAdapter.js.map +1 -0
  17. package/dist/adapters/ExpressValidatorAdapter.d.ts +6 -0
  18. package/dist/adapters/ExpressValidatorAdapter.d.ts.map +1 -0
  19. package/dist/adapters/ExpressValidatorAdapter.js +78 -0
  20. package/dist/adapters/ExpressValidatorAdapter.js.map +1 -0
  21. package/dist/adapters/GoggleAdapter.d.ts +15 -0
  22. package/dist/adapters/GoggleAdapter.d.ts.map +1 -0
  23. package/dist/adapters/GoggleAdapter.js +91 -0
  24. package/dist/adapters/GoggleAdapter.js.map +1 -0
  25. package/dist/adapters/GoogleAdapter.d.ts +15 -0
  26. package/dist/adapters/GoogleAdapter.d.ts.map +1 -0
  27. package/dist/adapters/GoogleAdapter.js +159 -0
  28. package/dist/adapters/GoogleAdapter.js.map +1 -0
  29. package/dist/adapters/JWTAdapter.d.ts +28 -0
  30. package/dist/adapters/JWTAdapter.d.ts.map +1 -0
  31. package/dist/adapters/JWTAdapter.js +276 -0
  32. package/dist/adapters/JWTAdapter.js.map +1 -0
  33. package/dist/adapters/RLFlexibleAdapter.d.ts +11 -0
  34. package/dist/adapters/RLFlexibleAdapter.d.ts.map +1 -0
  35. package/dist/adapters/RLFlexibleAdapter.js +115 -0
  36. package/dist/adapters/RLFlexibleAdapter.js.map +1 -0
  37. package/dist/adapters/SanitizeHtmlAdapter.d.ts +12 -0
  38. package/dist/adapters/SanitizeHtmlAdapter.d.ts.map +1 -0
  39. package/dist/adapters/SanitizeHtmlAdapter.js +141 -0
  40. package/dist/adapters/SanitizeHtmlAdapter.js.map +1 -0
  41. package/dist/adapters/XSSAdapter.d.ts +33 -0
  42. package/dist/adapters/XSSAdapter.d.ts.map +1 -0
  43. package/dist/adapters/XSSAdapter.js +127 -0
  44. package/dist/adapters/XSSAdapter.js.map +1 -0
  45. package/dist/adapters/ZodAdapter.d.ts +7 -0
  46. package/dist/adapters/ZodAdapter.d.ts.map +1 -0
  47. package/dist/adapters/ZodAdapter.js +39 -0
  48. package/dist/adapters/ZodAdapter.js.map +1 -0
  49. package/dist/core/HiSecure.d.ts +62 -0
  50. package/dist/core/HiSecure.d.ts.map +1 -0
  51. package/dist/core/HiSecure.js +273 -0
  52. package/dist/core/HiSecure.js.map +1 -0
  53. package/dist/core/config.d.ts +3 -0
  54. package/dist/core/config.d.ts.map +1 -0
  55. package/dist/core/config.js +53 -0
  56. package/dist/core/config.js.map +1 -0
  57. package/dist/core/constants.d.ts +37 -0
  58. package/dist/core/constants.d.ts.map +1 -0
  59. package/dist/core/constants.js +67 -0
  60. package/dist/core/constants.js.map +1 -0
  61. package/dist/core/errors/AdapterError.d.ts +5 -0
  62. package/dist/core/errors/AdapterError.d.ts.map +1 -0
  63. package/dist/core/errors/AdapterError.js +15 -0
  64. package/dist/core/errors/AdapterError.js.map +1 -0
  65. package/dist/core/errors/HttpErrror.d.ts +17 -0
  66. package/dist/core/errors/HttpErrror.d.ts.map +1 -0
  67. package/dist/core/errors/HttpErrror.js +36 -0
  68. package/dist/core/errors/HttpErrror.js.map +1 -0
  69. package/dist/core/errors/SanitizerError.d.ts +5 -0
  70. package/dist/core/errors/SanitizerError.d.ts.map +1 -0
  71. package/dist/core/errors/SanitizerError.js +14 -0
  72. package/dist/core/errors/SanitizerError.js.map +1 -0
  73. package/dist/core/errors/SecurityError.d.ts +5 -0
  74. package/dist/core/errors/SecurityError.d.ts.map +1 -0
  75. package/dist/core/errors/SecurityError.js +14 -0
  76. package/dist/core/errors/SecurityError.js.map +1 -0
  77. package/dist/core/errors/ValidationError.d.ts +5 -0
  78. package/dist/core/errors/ValidationError.d.ts.map +1 -0
  79. package/dist/core/errors/ValidationError.js +14 -0
  80. package/dist/core/errors/ValidationError.js.map +1 -0
  81. package/dist/core/types/HiSecureConfig.d.ts +47 -0
  82. package/dist/core/types/HiSecureConfig.d.ts.map +1 -0
  83. package/dist/core/types/HiSecureConfig.js +3 -0
  84. package/dist/core/types/HiSecureConfig.js.map +1 -0
  85. package/dist/core/types/SecureOptions.d.ts +30 -0
  86. package/dist/core/types/SecureOptions.d.ts.map +1 -0
  87. package/dist/core/types/SecureOptions.js +4 -0
  88. package/dist/core/types/SecureOptions.js.map +1 -0
  89. package/dist/core/useSecure.d.ts +10 -0
  90. package/dist/core/useSecure.d.ts.map +1 -0
  91. package/dist/core/useSecure.js +85 -0
  92. package/dist/core/useSecure.js.map +1 -0
  93. package/dist/examples/e1.d.ts +1 -0
  94. package/dist/examples/e1.d.ts.map +1 -0
  95. package/dist/examples/e1.js +3 -0
  96. package/dist/examples/e1.js.map +1 -0
  97. package/dist/index.d.ts +9 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +15 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/logging/index.d.ts +3 -0
  102. package/dist/logging/index.d.ts.map +1 -0
  103. package/dist/logging/index.js +19 -0
  104. package/dist/logging/index.js.map +1 -0
  105. package/dist/logging/morganSetup.d.ts +2 -0
  106. package/dist/logging/morganSetup.d.ts.map +1 -0
  107. package/dist/logging/morganSetup.js +9 -0
  108. package/dist/logging/morganSetup.js.map +1 -0
  109. package/dist/logging/winstonSetup.d.ts +6 -0
  110. package/dist/logging/winstonSetup.d.ts.map +1 -0
  111. package/dist/logging/winstonSetup.js +22 -0
  112. package/dist/logging/winstonSetup.js.map +1 -0
  113. package/dist/managers/AuthManager.d.ts +23 -0
  114. package/dist/managers/AuthManager.d.ts.map +1 -0
  115. package/dist/managers/AuthManager.js +190 -0
  116. package/dist/managers/AuthManager.js.map +1 -0
  117. package/dist/managers/CorsManager.d.ts +9 -0
  118. package/dist/managers/CorsManager.d.ts.map +1 -0
  119. package/dist/managers/CorsManager.js +55 -0
  120. package/dist/managers/CorsManager.js.map +1 -0
  121. package/dist/managers/HashManager.d.ts +22 -0
  122. package/dist/managers/HashManager.d.ts.map +1 -0
  123. package/dist/managers/HashManager.js +319 -0
  124. package/dist/managers/HashManager.js.map +1 -0
  125. package/dist/managers/JsonManager.d.ts +6 -0
  126. package/dist/managers/JsonManager.d.ts.map +1 -0
  127. package/dist/managers/JsonManager.js +142 -0
  128. package/dist/managers/JsonManager.js.map +1 -0
  129. package/dist/managers/RateLimitManager.d.ts +16 -0
  130. package/dist/managers/RateLimitManager.d.ts.map +1 -0
  131. package/dist/managers/RateLimitManager.js +108 -0
  132. package/dist/managers/RateLimitManager.js.map +1 -0
  133. package/dist/managers/SanitizerManager.d.ts +18 -0
  134. package/dist/managers/SanitizerManager.d.ts.map +1 -0
  135. package/dist/managers/SanitizerManager.js +296 -0
  136. package/dist/managers/SanitizerManager.js.map +1 -0
  137. package/dist/managers/ValidatorManager.d.ts +13 -0
  138. package/dist/managers/ValidatorManager.d.ts.map +1 -0
  139. package/dist/managers/ValidatorManager.js +218 -0
  140. package/dist/managers/ValidatorManager.js.map +1 -0
  141. package/dist/middlewares/errorHandler.d.ts +3 -0
  142. package/dist/middlewares/errorHandler.d.ts.map +1 -0
  143. package/dist/middlewares/errorHandler.js +94 -0
  144. package/dist/middlewares/errorHandler.js.map +1 -0
  145. package/dist/middlewares/index.d.ts +3 -0
  146. package/dist/middlewares/index.d.ts.map +1 -0
  147. package/dist/middlewares/index.js +19 -0
  148. package/dist/middlewares/index.js.map +1 -0
  149. package/dist/middlewares/requestLogger.d.ts +2 -0
  150. package/dist/middlewares/requestLogger.d.ts.map +1 -0
  151. package/dist/middlewares/requestLogger.js +8 -0
  152. package/dist/middlewares/requestLogger.js.map +1 -0
  153. package/dist/test/t1.d.ts +1 -0
  154. package/dist/test/t1.d.ts.map +1 -0
  155. package/dist/test/t1.js +3 -0
  156. package/dist/test/t1.js.map +1 -0
  157. package/dist/utils/deepFreeze.d.ts +2 -0
  158. package/dist/utils/deepFreeze.d.ts.map +1 -0
  159. package/dist/utils/deepFreeze.js +69 -0
  160. package/dist/utils/deepFreeze.js.map +1 -0
  161. package/dist/utils/deepMerge.d.ts +5 -0
  162. package/dist/utils/deepMerge.d.ts.map +1 -0
  163. package/dist/utils/deepMerge.js +68 -0
  164. package/dist/utils/deepMerge.js.map +1 -0
  165. package/dist/utils/normalizeOptions.d.ts +38 -0
  166. package/dist/utils/normalizeOptions.d.ts.map +1 -0
  167. package/dist/utils/normalizeOptions.js +119 -0
  168. package/dist/utils/normalizeOptions.js.map +1 -0
  169. package/package.json +50 -0
  170. package/src/adapters/ArgonAdapter.ts +41 -0
  171. package/src/adapters/BcryptAdapter.ts +49 -0
  172. package/src/adapters/ExpressRLAdapter.ts +84 -0
  173. package/src/adapters/ExpressValidatorAdapter.ts +99 -0
  174. package/src/adapters/GoogleAdapter.ts +206 -0
  175. package/src/adapters/JWTAdapter.ts +346 -0
  176. package/src/adapters/RLFlexibleAdapter.ts +139 -0
  177. package/src/adapters/SanitizeHtmlAdapter.ts +162 -0
  178. package/src/adapters/XSSAdapter.ts +153 -0
  179. package/src/adapters/ZodAdapter.ts +91 -0
  180. package/src/core/HiSecure.ts +955 -0
  181. package/src/core/config.ts +156 -0
  182. package/src/core/constants.ts +73 -0
  183. package/src/core/errors/AdapterError.ts +14 -0
  184. package/src/core/errors/HttpErrror.ts +46 -0
  185. package/src/core/errors/SanitizerError.ts +13 -0
  186. package/src/core/errors/SecurityError.ts +13 -0
  187. package/src/core/errors/ValidationError.ts +13 -0
  188. package/src/core/types/HiSecureConfig.ts +62 -0
  189. package/src/core/types/SecureOptions.ts +61 -0
  190. package/src/core/useSecure.ts +111 -0
  191. package/src/examples/e1.ts +1 -0
  192. package/src/index.ts +17 -0
  193. package/src/logging/index.ts +2 -0
  194. package/src/logging/morganSetup.ts +3 -0
  195. package/src/logging/winstonSetup.ts +17 -0
  196. package/src/managers/AuthManager.ts +237 -0
  197. package/src/managers/CorsManager.ts +58 -0
  198. package/src/managers/HashManager.ts +390 -0
  199. package/src/managers/JsonManager.ts +149 -0
  200. package/src/managers/RateLimitManager.ts +368 -0
  201. package/src/managers/SanitizerManager.ts +359 -0
  202. package/src/managers/ValidatorManager.ts +269 -0
  203. package/src/middlewares/errorHandler.ts +265 -0
  204. package/src/middlewares/index.ts +2 -0
  205. package/src/middlewares/requestLogger.ts +5 -0
  206. package/src/test/t1.ts +1 -0
  207. package/src/utils/deepFreeze.ts +76 -0
  208. package/src/utils/deepMerge.ts +87 -0
  209. package/src/utils/normalizeOptions.ts +265 -0
  210. package/tsconfig.json +30 -0
@@ -0,0 +1,17 @@
1
+ export declare class HttpError extends Error {
2
+ status: number;
3
+ code?: string;
4
+ details?: any;
5
+ constructor(status: number, message: string, options?: {
6
+ code?: string;
7
+ details?: any;
8
+ });
9
+ static BadRequest(message?: string, details?: any): HttpError;
10
+ static Unauthorized(message?: string, details?: any): HttpError;
11
+ static Forbidden(message?: string, details?: any): HttpError;
12
+ static NotFound(message?: string, details?: any): HttpError;
13
+ static Conflict(message?: string, details?: any): HttpError;
14
+ static TooManyRequests(message?: string, details?: any): HttpError;
15
+ static Internal(message?: string, details?: any): HttpError;
16
+ }
17
+ //# sourceMappingURL=HttpErrror.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpErrror.d.ts","sourceRoot":"","sources":["../../../src/core/errors/HttpErrror.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,KAAK;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;gBAGV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE;IAU7C,MAAM,CAAC,UAAU,CAAC,OAAO,SAAgB,EAAE,OAAO,CAAC,EAAE,GAAG;IAIxD,MAAM,CAAC,YAAY,CAAC,OAAO,SAAiB,EAAE,OAAO,CAAC,EAAE,GAAG;IAI3D,MAAM,CAAC,SAAS,CAAC,OAAO,SAAc,EAAE,OAAO,CAAC,EAAE,GAAG;IAIrD,MAAM,CAAC,QAAQ,CAAC,OAAO,SAAc,EAAE,OAAO,CAAC,EAAE,GAAG;IAIpD,MAAM,CAAC,QAAQ,CAAC,OAAO,SAAa,EAAE,OAAO,CAAC,EAAE,GAAG;IAInD,MAAM,CAAC,eAAe,CAAC,OAAO,SAAsB,EAAE,OAAO,CAAC,EAAE,GAAG;IAInE,MAAM,CAAC,QAAQ,CAAC,OAAO,SAA0B,EAAE,OAAO,CAAC,EAAE,GAAG;CAGnE"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpError = void 0;
4
+ class HttpError extends Error {
5
+ constructor(status, message, options) {
6
+ super(message);
7
+ this.status = status;
8
+ this.code = options?.code;
9
+ this.details = options?.details;
10
+ this.name = "HttpError";
11
+ }
12
+ // ---------- STATIC HELPERS ----------
13
+ static BadRequest(message = "Bad Request", details) {
14
+ return new HttpError(400, message, { code: "BAD_REQUEST", details });
15
+ }
16
+ static Unauthorized(message = "Unauthorized", details) {
17
+ return new HttpError(401, message, { code: "UNAUTHORIZED", details });
18
+ }
19
+ static Forbidden(message = "Forbidden", details) {
20
+ return new HttpError(403, message, { code: "FORBIDDEN", details });
21
+ }
22
+ static NotFound(message = "Not Found", details) {
23
+ return new HttpError(404, message, { code: "NOT_FOUND", details });
24
+ }
25
+ static Conflict(message = "Conflict", details) {
26
+ return new HttpError(409, message, { code: "CONFLICT", details });
27
+ }
28
+ static TooManyRequests(message = "Too Many Requests", details) {
29
+ return new HttpError(429, message, { code: "RATE_LIMIT", details });
30
+ }
31
+ static Internal(message = "Internal Server Error", details) {
32
+ return new HttpError(500, message, { code: "INTERNAL_ERROR", details });
33
+ }
34
+ }
35
+ exports.HttpError = HttpError;
36
+ //# sourceMappingURL=HttpErrror.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpErrror.js","sourceRoot":"","sources":["../../../src/core/errors/HttpErrror.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAU,SAAQ,KAAK;IAKhC,YACI,MAAc,EACd,OAAe,EACf,OAAyC;QAEzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAc,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC5B,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,aAAa,EAAE,OAAa;QACpD,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAO,GAAG,cAAc,EAAE,OAAa;QACvD,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,WAAW,EAAE,OAAa;QACjD,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,WAAW,EAAE,OAAa;QAChD,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,UAAU,EAAE,OAAa;QAC/C,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAO,GAAG,mBAAmB,EAAE,OAAa;QAC/D,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,uBAAuB,EAAE,OAAa;QAC5D,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;CACJ;AA7CD,8BA6CC","sourcesContent":["export class HttpError extends Error {\r\n status: number;\r\n code?: string;\r\n details?: any;\r\n\r\n constructor(\r\n status: number,\r\n message: string,\r\n options?: { code?:string; details?: any }\r\n ) {\r\n super(message);\r\n this.status = status;\r\n this.code = options?.code as string;\r\n this.details = options?.details;\r\n this.name = \"HttpError\";\r\n }\r\n\r\n // ---------- STATIC HELPERS ----------\r\n static BadRequest(message = \"Bad Request\", details?: any) {\r\n return new HttpError(400, message, { code: \"BAD_REQUEST\", details });\r\n }\r\n\r\n static Unauthorized(message = \"Unauthorized\", details?: any) {\r\n return new HttpError(401, message, { code: \"UNAUTHORIZED\", details });\r\n }\r\n\r\n static Forbidden(message = \"Forbidden\", details?: any) {\r\n return new HttpError(403, message, { code: \"FORBIDDEN\", details });\r\n }\r\n\r\n static NotFound(message = \"Not Found\", details?: any) {\r\n return new HttpError(404, message, { code: \"NOT_FOUND\", details });\r\n }\r\n\r\n static Conflict(message = \"Conflict\", details?: any) {\r\n return new HttpError(409, message, { code: \"CONFLICT\", details });\r\n }\r\n\r\n static TooManyRequests(message = \"Too Many Requests\", details?: any) {\r\n return new HttpError(429, message, { code: \"RATE_LIMIT\", details });\r\n }\r\n\r\n static Internal(message = \"Internal Server Error\", details?: any) {\r\n return new HttpError(500, message, { code: \"INTERNAL_ERROR\", details });\r\n }\r\n}\r\n"]}
@@ -0,0 +1,5 @@
1
+ export declare class SanitizerError extends Error {
2
+ code: string;
3
+ constructor(message: string, code?: string);
4
+ }
5
+ //# sourceMappingURL=SanitizerError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SanitizerError.d.ts","sourceRoot":"","sources":["../../../src/core/errors/SanitizerError.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAe,SAAQ,KAAK;IACrC,IAAI,EAAE,MAAM,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoC;CAO1E"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SanitizerError = void 0;
4
+ const constants_js_1 = require("../constants.js");
5
+ class SanitizerError extends Error {
6
+ constructor(message, code = constants_js_1.ERROR_CODES.SANITIZER_ERROR) {
7
+ super(message);
8
+ this.code = code;
9
+ this.name = "SanitizerError";
10
+ Error.captureStackTrace?.(this, SanitizerError);
11
+ }
12
+ }
13
+ exports.SanitizerError = SanitizerError;
14
+ //# sourceMappingURL=SanitizerError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SanitizerError.js","sourceRoot":"","sources":["../../../src/core/errors/SanitizerError.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAE9C,MAAa,cAAe,SAAQ,KAAK;IAGrC,YAAY,OAAe,EAAE,OAAe,0BAAW,CAAC,eAAe;QACnE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAE7B,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC;CACJ;AAVD,wCAUC","sourcesContent":["import { ERROR_CODES } from \"../constants.js\";\r\n\r\nexport class SanitizerError extends Error {\r\n code: string;\r\n\r\n constructor(message: string, code: string = ERROR_CODES.SANITIZER_ERROR) {\r\n super(message);\r\n this.code = code;\r\n this.name = \"SanitizerError\";\r\n\r\n Error.captureStackTrace?.(this, SanitizerError);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,5 @@
1
+ export declare class SecurityError extends Error {
2
+ code: string;
3
+ constructor(message: string, code?: string);
4
+ }
5
+ //# sourceMappingURL=SecurityError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityError.d.ts","sourceRoot":"","sources":["../../../src/core/errors/SecurityError.ts"],"names":[],"mappings":"AAEA,qBAAa,aAAc,SAAQ,KAAK;IACpC,IAAI,EAAE,MAAM,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAiC;CAOvE"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecurityError = void 0;
4
+ const constants_js_1 = require("../constants.js");
5
+ class SecurityError extends Error {
6
+ constructor(message, code = constants_js_1.ERROR_CODES.CONFIG_ERROR) {
7
+ super(message);
8
+ this.code = code;
9
+ this.name = "SecurityError";
10
+ Error.captureStackTrace?.(this, SecurityError);
11
+ }
12
+ }
13
+ exports.SecurityError = SecurityError;
14
+ //# sourceMappingURL=SecurityError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityError.js","sourceRoot":"","sources":["../../../src/core/errors/SecurityError.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAE9C,MAAa,aAAc,SAAQ,KAAK;IAGpC,YAAY,OAAe,EAAE,OAAe,0BAAW,CAAC,YAAY;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAE5B,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC;CACJ;AAVD,sCAUC","sourcesContent":["import { ERROR_CODES } from \"../constants.js\";\r\n\r\nexport class SecurityError extends Error {\r\n code: string;\r\n\r\n constructor(message: string, code: string = ERROR_CODES.CONFIG_ERROR) {\r\n super(message);\r\n this.code = code;\r\n this.name = \"SecurityError\";\r\n\r\n Error.captureStackTrace?.(this, SecurityError);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,5 @@
1
+ export declare class ValidationError extends Error {
2
+ code: string;
3
+ constructor(message: string, code?: string);
4
+ }
5
+ //# sourceMappingURL=ValidationError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationError.d.ts","sourceRoot":"","sources":["../../../src/core/errors/ValidationError.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAgB,SAAQ,KAAK;IACtC,IAAI,EAAE,MAAM,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAqC;CAO3E"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationError = void 0;
4
+ const constants_js_1 = require("../constants.js");
5
+ class ValidationError extends Error {
6
+ constructor(message, code = constants_js_1.ERROR_CODES.VALIDATION_ERROR) {
7
+ super(message);
8
+ this.code = code;
9
+ this.name = "ValidationError";
10
+ Error.captureStackTrace?.(this, ValidationError);
11
+ }
12
+ }
13
+ exports.ValidationError = ValidationError;
14
+ //# sourceMappingURL=ValidationError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationError.js","sourceRoot":"","sources":["../../../src/core/errors/ValidationError.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAE9C,MAAa,eAAgB,SAAQ,KAAK;IAGtC,YAAY,OAAe,EAAE,OAAe,0BAAW,CAAC,gBAAgB;QACpE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAE9B,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;CACJ;AAVD,0CAUC","sourcesContent":["import { ERROR_CODES } from \"../constants.js\";\r\n\r\nexport class ValidationError extends Error {\r\n code: string;\r\n\r\n constructor(message: string, code: string = ERROR_CODES.VALIDATION_ERROR) {\r\n super(message);\r\n this.code = code;\r\n this.name = \"ValidationError\";\r\n\r\n Error.captureStackTrace?.(this, ValidationError);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,47 @@
1
+ export interface HiSecureConfig {
2
+ enableHelmet: boolean;
3
+ enableHPP: boolean;
4
+ enableCORS: boolean;
5
+ enableSanitizer: boolean;
6
+ enableRateLimiter: boolean;
7
+ enableValidation: boolean;
8
+ enableCompression: boolean;
9
+ hashing: {
10
+ primary: "argon2" | "bcrypt";
11
+ fallback: "bcrypt" | null;
12
+ saltRounds: number;
13
+ };
14
+ rateLimiter: {
15
+ windowMs: number;
16
+ maxRequests: number;
17
+ message: string;
18
+ useAdaptiveMode: boolean;
19
+ };
20
+ validation: {
21
+ mode: "zod" | "express-validator";
22
+ fallback: "express-validator" | null;
23
+ };
24
+ sanitizer: {
25
+ allowedTags: string[];
26
+ allowedAttributes: Record<string, string[]>;
27
+ fallback: 'escape' | 'xss' | 'none';
28
+ primary: 'sanitize-html' | 'xss';
29
+ };
30
+ logging: {
31
+ enabled: boolean;
32
+ level: "info" | "warn" | "error" | "debug";
33
+ file?: string;
34
+ maxSize?: number;
35
+ };
36
+ auth: {
37
+ enabled: boolean;
38
+ jwtSecret?: string;
39
+ jwtExpiresIn?: string | number;
40
+ googleClientId?: string;
41
+ };
42
+ json?: object;
43
+ urlencoded?: object;
44
+ cors?: object;
45
+ compression?: object;
46
+ }
47
+ //# sourceMappingURL=HiSecureConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiSecureConfig.d.ts","sourceRoot":"","sources":["../../../src/core/types/HiSecureConfig.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,cAAc;IAE3B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAG3B,OAAO,EAAE;QACL,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IAGF,WAAW,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,OAAO,CAAC;KAC5B,CAAC;IAGF,UAAU,EAAE;QACR,IAAI,EAAE,KAAK,GAAG,mBAAmB,CAAC;QAClC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;KACxC,CAAC;IAGF,SAAS,EAAE;QACP,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;QACpC,OAAO,EAAE,eAAe,GAAG,KAAK,CAAC;KACpC,CAAC;IAGF,OAAO,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;QAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAGF,IAAI,EAAE;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IAGF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=HiSecureConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiSecureConfig.js","sourceRoot":"","sources":["../../../src/core/types/HiSecureConfig.ts"],"names":[],"mappings":"","sourcesContent":["// src/core/types/HiSecureConfig.ts\r\nexport interface HiSecureConfig {\r\n // Core security features\r\n enableHelmet: boolean;\r\n enableHPP: boolean;\r\n enableCORS: boolean;\r\n enableSanitizer: boolean;\r\n enableRateLimiter: boolean;\r\n enableValidation: boolean;\r\n enableCompression: boolean;\r\n \r\n // Hashing configuration\r\n hashing: {\r\n primary: \"argon2\" | \"bcrypt\";\r\n fallback: \"bcrypt\" | null;\r\n saltRounds: number;\r\n };\r\n \r\n // Rate limiting\r\n rateLimiter: {\r\n windowMs: number;\r\n maxRequests: number;\r\n message: string;\r\n useAdaptiveMode: boolean;\r\n };\r\n \r\n // Validation\r\n validation: {\r\n mode: \"zod\" | \"express-validator\";\r\n fallback: \"express-validator\" | null;\r\n };\r\n \r\n // Sanitization\r\n sanitizer: {\r\n allowedTags: string[];\r\n allowedAttributes: Record<string, string[]>;\r\n fallback: 'escape' | 'xss' | 'none';\r\n primary: 'sanitize-html' | 'xss';\r\n };\r\n \r\n // Logging\r\n logging: {\r\n enabled: boolean;\r\n level: \"info\" | \"warn\" | \"error\" | \"debug\";\r\n file?: string;\r\n maxSize?: number;\r\n };\r\n \r\n // Authentication\r\n auth: {\r\n enabled: boolean;\r\n jwtSecret?: string;\r\n jwtExpiresIn?: string | number;\r\n googleClientId?: string;\r\n };\r\n \r\n // Optional parsers\r\n json?: object;\r\n urlencoded?: object;\r\n cors?: object;\r\n compression?: object;\r\n}"]}
@@ -0,0 +1,30 @@
1
+ import { ZodSchema } from 'zod';
2
+ import { ValidationChain } from 'express-validator';
3
+ export type ValidationSchema = ZodSchema | ValidationChain[];
4
+ export interface RateLimitOptions {
5
+ windowMs?: number;
6
+ max?: number;
7
+ message?: string;
8
+ skipFailedRequests?: boolean;
9
+ [key: string]: any;
10
+ }
11
+ export interface SanitizeOptions {
12
+ allowedTags?: string[];
13
+ allowedAttributes?: Record<string, string[]>;
14
+ [key: string]: any;
15
+ }
16
+ export interface AuthOptions {
17
+ required?: boolean;
18
+ roles?: string[];
19
+ }
20
+ export interface SecureOptions {
21
+ cors?: boolean | object;
22
+ rateLimit?: boolean | "strict" | "relaxed" | RateLimitOptions;
23
+ sanitize?: boolean | SanitizeOptions;
24
+ validate?: ValidationSchema;
25
+ json?: boolean | object;
26
+ auth?: boolean | AuthOptions;
27
+ compression?: boolean | object;
28
+ headers?: boolean | object;
29
+ }
30
+ //# sourceMappingURL=SecureOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecureOptions.d.ts","sourceRoot":"","sources":["../../../src/core/types/SecureOptions.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC;IAC9D,QAAQ,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACrC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // // src/core/types/SecureOptions.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=SecureOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecureOptions.js","sourceRoot":"","sources":["../../../src/core/types/SecureOptions.ts"],"names":[],"mappings":";AAAA,qCAAqC","sourcesContent":["// // src/core/types/SecureOptions.ts\r\n\r\n// export interface SecureOptions {\r\n// /** Enable/override CORS for this route */\r\n// cors?: boolean | object;\r\n\r\n// /** Per-route rate limit */\r\n// rateLimit?: boolean | \"strict\" | \"relaxed\" | object;\r\n\r\n// /** Sanitize request body */\r\n// sanitize?: boolean;\r\n\r\n// /** Validation schema (Zod or express-validator) */\r\n// validate?: any;\r\n\r\n// /** Auto-JSON parsing (express.json) options */\r\n// json?: boolean | object;\r\n\r\n// /** NEW: Per-route authentication (JWT protect) */\r\n// auth?: boolean | { required?: boolean };\r\n// }\r\n\r\n\r\n\r\n\r\n\r\n// src/core/types/SecureOptions.ts\r\nimport { z, ZodSchema } from 'zod';\r\nimport { ValidationChain } from 'express-validator';\r\n\r\nexport type ValidationSchema = ZodSchema | ValidationChain[];\r\n\r\nexport interface RateLimitOptions {\r\n windowMs?: number;\r\n max?: number;\r\n message?: string;\r\n skipFailedRequests?: boolean;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface SanitizeOptions {\r\n allowedTags?: string[];\r\n allowedAttributes?: Record<string, string[]>;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface AuthOptions {\r\n required?: boolean;\r\n roles?: string[];\r\n}\r\n\r\nexport interface SecureOptions {\r\n cors?: boolean | object;\r\n rateLimit?: boolean | \"strict\" | \"relaxed\" | RateLimitOptions;\r\n sanitize?: boolean | SanitizeOptions;\r\n validate?: ValidationSchema;\r\n json?: boolean | object;\r\n auth?: boolean | AuthOptions;\r\n compression?: boolean | object;\r\n headers?: boolean | object;\r\n}"]}
@@ -0,0 +1,10 @@
1
+ import { SecureOptions } from "./types/SecureOptions.js";
2
+ /**
3
+ * @deprecated Use HiSecure.middleware() or fluent API instead
4
+ */
5
+ export declare function useSecure(options?: SecureOptions | "api" | "strict" | "public"): any[];
6
+ /**
7
+ * Legacy support - route-level security
8
+ */
9
+ export declare function secureRoute(options?: SecureOptions): any[];
10
+ //# sourceMappingURL=useSecure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSecure.d.ts","sourceRoot":"","sources":["../../src/core/useSecure.ts"],"names":[],"mappings":"AAgEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,SAG9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,SAiClD"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ // import { normalizeOptions } from "../utils/normalizeOptions.js";
3
+ // import { HiSecure } from "./HiSecure.js";
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.useSecure = useSecure;
6
+ exports.secureRoute = secureRoute;
7
+ // export function useSecure(engine: HiSecure, input?: any) {
8
+ // if (!engine.isInitialized()) {
9
+ // throw new Error("HiSecure must be initialized before using .use()");
10
+ // }
11
+ // const options = normalizeOptions(input);
12
+ // const chain: any[] = [];
13
+ // // JSON
14
+ // if (options.json.enabled) {
15
+ // chain.push(engine.jsonManager.middleware(options.json.options));
16
+ // chain.push(engine.jsonManager.urlencoded());
17
+ // }
18
+ // // CORS
19
+ // if (options.cors.enabled) {
20
+ // chain.push(engine.corsManager.middleware(options.cors.options));
21
+ // }
22
+ // // Sanitize
23
+ // if (options.sanitize.enabled) {
24
+ // chain.push(engine.sanitizerManager.middleware());
25
+ // }
26
+ // // Validate
27
+ // if (options.validate.enabled && options.validate.schema) {
28
+ // chain.push(engine.validatorManager.validate(options.validate.schema));
29
+ // }
30
+ // // Rate Limit
31
+ // if (options.rateLimit.enabled) {
32
+ // chain.push(
33
+ // engine.rateLimitManager.middleware({
34
+ // mode: options.rateLimit.mode ?? undefined,
35
+ // options: options.rateLimit.options ?? undefined
36
+ // })
37
+ // );
38
+ // }
39
+ // // AUTH
40
+ // if (options.auth.enabled) {
41
+ // if (!engine.authManager) {
42
+ // throw new Error("AuthManager not initialized. Enable auth in config.");
43
+ // }
44
+ // chain.push(
45
+ // engine.authManager.protect({
46
+ // required: options.auth.required
47
+ // })
48
+ // );
49
+ // }
50
+ // return chain;
51
+ // }
52
+ // src/core/useSecure.ts - SIMPLER VERSION
53
+ // This is now optional since HiSecure class has fluent API
54
+ const HiSecure_js_1 = require("./HiSecure.js");
55
+ /**
56
+ * @deprecated Use HiSecure.middleware() or fluent API instead
57
+ */
58
+ function useSecure(options) {
59
+ console.warn("⚠ useSecure() is deprecated. Use HiSecure.middleware() or fluent API methods.");
60
+ return HiSecure_js_1.HiSecure.middleware(options);
61
+ }
62
+ /**
63
+ * Legacy support - route-level security
64
+ */
65
+ function secureRoute(options) {
66
+ const chain = [];
67
+ if (options?.cors) {
68
+ chain.push(HiSecure_js_1.HiSecure.cors(typeof options.cors === 'object' ? options.cors : undefined));
69
+ }
70
+ if (options?.rateLimit) {
71
+ chain.push(HiSecure_js_1.HiSecure.rateLimit(typeof options.rateLimit === 'object' ? options.rateLimit :
72
+ options.rateLimit === "strict" ? "strict" : "relaxed"));
73
+ }
74
+ if (options?.sanitize) {
75
+ chain.push(HiSecure_js_1.HiSecure.sanitize(typeof options.sanitize === 'object' ? options.sanitize : undefined));
76
+ }
77
+ if (options?.validate) {
78
+ chain.push(HiSecure_js_1.HiSecure.validate(options.validate));
79
+ }
80
+ if (options?.auth) {
81
+ chain.push(HiSecure_js_1.HiSecure.auth(typeof options.auth === 'object' ? options.auth : undefined));
82
+ }
83
+ return chain;
84
+ }
85
+ //# sourceMappingURL=useSecure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSecure.js","sourceRoot":"","sources":["../../src/core/useSecure.ts"],"names":[],"mappings":";AAAA,mEAAmE;AACnE,4CAA4C;;AAoE5C,8BAGC;AAKD,kCAiCC;AA3GD,6DAA6D;AAC7D,qCAAqC;AACrC,+EAA+E;AAC/E,QAAQ;AAER,+CAA+C;AAC/C,+BAA+B;AAE/B,cAAc;AACd,kCAAkC;AAClC,2EAA2E;AAC3E,uDAAuD;AACvD,QAAQ;AAER,cAAc;AACd,kCAAkC;AAClC,2EAA2E;AAC3E,QAAQ;AAER,kBAAkB;AAClB,sCAAsC;AACtC,4DAA4D;AAC5D,QAAQ;AAER,kBAAkB;AAClB,iEAAiE;AACjE,iFAAiF;AACjF,QAAQ;AAER,oBAAoB;AACpB,uCAAuC;AACvC,sBAAsB;AACtB,mDAAmD;AACnD,6DAA6D;AAC7D,kEAAkE;AAClE,iBAAiB;AACjB,aAAa;AACb,QAAQ;AAER,cAAc;AACd,kCAAkC;AAClC,qCAAqC;AACrC,sFAAsF;AACtF,YAAY;AAEZ,sBAAsB;AACtB,2CAA2C;AAC3C,kDAAkD;AAClD,iBAAiB;AACjB,aAAa;AACb,QAAQ;AAER,oBAAoB;AACpB,IAAI;AAIJ,0CAA0C;AAC1C,2DAA2D;AAE3D,+CAAyC;AAGzC;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAqD;IAC3E,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC9F,OAAO,sBAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,OAAuB;IAC/C,MAAM,KAAK,GAAU,EAAE,CAAC;IAExB,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,sBAAQ,CAAC,IAAI,CACpB,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC,CAAC;IACP,CAAC;IAED,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,sBAAQ,CAAC,SAAS,CACzB,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3D,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACxD,CAAC,CAAC;IACP,CAAC;IAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,sBAAQ,CAAC,QAAQ,CACxB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACtE,CAAC,CAAC;IACP,CAAC;IAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,sBAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,sBAAQ,CAAC,IAAI,CACpB,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC,CAAC;IACP,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["// import { normalizeOptions } from \"../utils/normalizeOptions.js\";\r\n// import { HiSecure } from \"./HiSecure.js\";\r\n\r\n// export function useSecure(engine: HiSecure, input?: any) {\r\n// if (!engine.isInitialized()) {\r\n// throw new Error(\"HiSecure must be initialized before using .use()\");\r\n// }\r\n\r\n// const options = normalizeOptions(input);\r\n// const chain: any[] = [];\r\n\r\n// // JSON\r\n// if (options.json.enabled) {\r\n// chain.push(engine.jsonManager.middleware(options.json.options));\r\n// chain.push(engine.jsonManager.urlencoded());\r\n// }\r\n\r\n// // CORS\r\n// if (options.cors.enabled) {\r\n// chain.push(engine.corsManager.middleware(options.cors.options));\r\n// }\r\n\r\n// // Sanitize\r\n// if (options.sanitize.enabled) {\r\n// chain.push(engine.sanitizerManager.middleware());\r\n// }\r\n\r\n// // Validate\r\n// if (options.validate.enabled && options.validate.schema) {\r\n// chain.push(engine.validatorManager.validate(options.validate.schema));\r\n// }\r\n\r\n// // Rate Limit\r\n// if (options.rateLimit.enabled) {\r\n// chain.push(\r\n// engine.rateLimitManager.middleware({\r\n// mode: options.rateLimit.mode ?? undefined,\r\n// options: options.rateLimit.options ?? undefined\r\n// })\r\n// );\r\n// }\r\n\r\n// // AUTH\r\n// if (options.auth.enabled) {\r\n// if (!engine.authManager) {\r\n// throw new Error(\"AuthManager not initialized. Enable auth in config.\");\r\n// }\r\n\r\n// chain.push(\r\n// engine.authManager.protect({\r\n// required: options.auth.required\r\n// })\r\n// );\r\n// }\r\n\r\n// return chain;\r\n// }\r\n\r\n\r\n\r\n// src/core/useSecure.ts - SIMPLER VERSION\r\n// This is now optional since HiSecure class has fluent API\r\n\r\nimport { HiSecure } from \"./HiSecure.js\";\r\nimport { SecureOptions } from \"./types/SecureOptions.js\";\r\n\r\n/**\r\n * @deprecated Use HiSecure.middleware() or fluent API instead\r\n */\r\nexport function useSecure(options?: SecureOptions | \"api\" | \"strict\" | \"public\") {\r\n console.warn(\"⚠ useSecure() is deprecated. Use HiSecure.middleware() or fluent API methods.\");\r\n return HiSecure.middleware(options);\r\n}\r\n\r\n/**\r\n * Legacy support - route-level security\r\n */\r\nexport function secureRoute(options?: SecureOptions) {\r\n const chain: any[] = [];\r\n \r\n if (options?.cors) {\r\n chain.push(HiSecure.cors(\r\n typeof options.cors === 'object' ? options.cors : undefined\r\n ));\r\n }\r\n \r\n if (options?.rateLimit) {\r\n chain.push(HiSecure.rateLimit(\r\n typeof options.rateLimit === 'object' ? options.rateLimit : \r\n options.rateLimit === \"strict\" ? \"strict\" : \"relaxed\"\r\n ));\r\n }\r\n \r\n if (options?.sanitize) {\r\n chain.push(HiSecure.sanitize(\r\n typeof options.sanitize === 'object' ? options.sanitize : undefined\r\n ));\r\n }\r\n \r\n if (options?.validate) {\r\n chain.push(HiSecure.validate(options.validate));\r\n }\r\n \r\n if (options?.auth) {\r\n chain.push(HiSecure.auth(\r\n typeof options.auth === 'object' ? options.auth : undefined\r\n ));\r\n }\r\n \r\n return chain;\r\n}"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=e1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e1.d.ts","sourceRoot":"","sources":["../../src/examples/e1.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // baad mein krte hai ise
3
+ //# sourceMappingURL=e1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e1.js","sourceRoot":"","sources":["../../src/examples/e1.ts"],"names":[],"mappings":";AAAA,0BAA0B","sourcesContent":["// baad mein krte hai ise "]}
@@ -0,0 +1,9 @@
1
+ import { HiSecure } from "./core/HiSecure.js";
2
+ import { useSecure, secureRoute } from "./core/useSecure.js";
3
+ declare const hiSecure: HiSecure;
4
+ export { HiSecure, // Class for advanced usage
5
+ hiSecure, // Singleton instance
6
+ useSecure, // Legacy function (deprecated)
7
+ secureRoute };
8
+ export default hiSecure;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG7D,QAAA,MAAM,QAAQ,UAAyB,CAAC;AAGxC,OAAO,EACH,QAAQ,EAAS,2BAA2B;AAC5C,QAAQ,EAAS,qBAAqB;AACtC,SAAS,EAAQ,+BAA+B;AAChD,WAAW,EACd,CAAC;AAGF,eAAe,QAAQ,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.secureRoute = exports.useSecure = exports.hiSecure = exports.HiSecure = void 0;
4
+ // src/index.ts - MAIN ENTRY POINT
5
+ const HiSecure_js_1 = require("./core/HiSecure.js");
6
+ Object.defineProperty(exports, "HiSecure", { enumerable: true, get: function () { return HiSecure_js_1.HiSecure; } });
7
+ const useSecure_js_1 = require("./core/useSecure.js");
8
+ Object.defineProperty(exports, "useSecure", { enumerable: true, get: function () { return useSecure_js_1.useSecure; } });
9
+ Object.defineProperty(exports, "secureRoute", { enumerable: true, get: function () { return useSecure_js_1.secureRoute; } });
10
+ // Export the singleton instance for quick usage
11
+ const hiSecure = HiSecure_js_1.HiSecure.getInstance();
12
+ exports.hiSecure = hiSecure;
13
+ // Default export is the singleton instance
14
+ exports.default = hiSecure;
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,oDAA8C;AAQ1C,yFARK,sBAAQ,OAQL;AAPZ,sDAA6D;AASzD,0FATK,wBAAS,OASL;AACT,4FAVgB,0BAAW,OAUhB;AARf,gDAAgD;AAChD,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;AAKpC,4BAAQ;AAKZ,2CAA2C;AAC3C,kBAAe,QAAQ,CAAC","sourcesContent":["// src/index.ts - MAIN ENTRY POINT\r\nimport { HiSecure } from \"./core/HiSecure.js\";\r\nimport { useSecure, secureRoute } from \"./core/useSecure.js\";\r\n\r\n// Export the singleton instance for quick usage\r\nconst hiSecure = HiSecure.getInstance();\r\n\r\n// Export everything\r\nexport { \r\n HiSecure, // Class for advanced usage\r\n hiSecure, // Singleton instance\r\n useSecure, // Legacy function (deprecated)\r\n secureRoute // Route-level security helper\r\n};\r\n\r\n// Default export is the singleton instance\r\nexport default hiSecure;"]}
@@ -0,0 +1,3 @@
1
+ export * from "./winstonSetup.js";
2
+ export * from "./morganSetup.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./winstonSetup.js"), exports);
18
+ __exportStar(require("./morganSetup.js"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC","sourcesContent":["export * from \"./winstonSetup.js\";\r\nexport * from \"./morganSetup.js\";\r\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const requestLogger: (req: import("http").IncomingMessage, res: import("http").ServerResponse<import("http").IncomingMessage>, callback: (err?: Error) => void) => void;
2
+ //# sourceMappingURL=morganSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"morganSetup.d.ts","sourceRoot":"","sources":["../../src/logging/morganSetup.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,0HAA0J,CAAC,yBAAtI,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.requestLogger = void 0;
7
+ const morgan_1 = __importDefault(require("morgan"));
8
+ exports.requestLogger = (0, morgan_1.default)("combined");
9
+ //# sourceMappingURL=morganSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"morganSetup.js","sourceRoot":"","sources":["../../src/logging/morganSetup.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAEf,QAAA,aAAa,GAAG,IAAA,gBAAM,EAAC,UAAU,CAAC,CAAC","sourcesContent":["import morgan from \"morgan\";\r\n\r\nexport const requestLogger = morgan(\"combined\");"]}
@@ -0,0 +1,6 @@
1
+ import winston from "winston";
2
+ export declare const logger: winston.Logger;
3
+ export declare const logInfo: (msg: string, meta?: any) => winston.Logger;
4
+ export declare const logWarn: (msg: string, meta?: any) => winston.Logger;
5
+ export declare const logError: (msg: string, meta?: any) => winston.Logger;
6
+ //# sourceMappingURL=winstonSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"winstonSetup.d.ts","sourceRoot":"","sources":["../../src/logging/winstonSetup.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,eAAO,MAAM,MAAM,gBASjB,CAAC;AAGH,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,OAAM,GAAQ,mBAA2B,CAAC;AAC/E,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,OAAM,GAAQ,mBAA2B,CAAC;AAC/E,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,OAAM,GAAQ,mBAA4B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logError = exports.logWarn = exports.logInfo = exports.logger = void 0;
7
+ const winston_1 = __importDefault(require("winston"));
8
+ exports.logger = winston_1.default.createLogger({
9
+ level: "info",
10
+ format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.json()),
11
+ transports: [
12
+ new winston_1.default.transports.Console()
13
+ ]
14
+ });
15
+ // Shortcut helpers
16
+ const logInfo = (msg, meta = {}) => exports.logger.info(msg, meta);
17
+ exports.logInfo = logInfo;
18
+ const logWarn = (msg, meta = {}) => exports.logger.warn(msg, meta);
19
+ exports.logWarn = logWarn;
20
+ const logError = (msg, meta = {}) => exports.logger.error(msg, meta);
21
+ exports.logError = logError;
22
+ //# sourceMappingURL=winstonSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"winstonSetup.js","sourceRoot":"","sources":["../../src/logging/winstonSetup.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAEjB,QAAA,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;IACvC,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC1B,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACxB;IACD,UAAU,EAAE;QACR,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;KACnC;CACJ,CAAC,CAAC;AAEH,mBAAmB;AACZ,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,cAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAAlE,QAAA,OAAO,WAA2D;AACxE,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,cAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAAlE,QAAA,OAAO,WAA2D;AACxE,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,cAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAApE,QAAA,QAAQ,YAA4D","sourcesContent":["import winston from \"winston\";\r\n\r\nexport const logger = winston.createLogger({\r\n level: \"info\",\r\n format: winston.format.combine(\r\n winston.format.timestamp(),\r\n winston.format.json()\r\n ),\r\n transports: [\r\n new winston.transports.Console()\r\n ]\r\n});\r\n\r\n// Shortcut helpers\r\nexport const logInfo = (msg: string, meta: any = {}) => logger.info(msg, meta);\r\nexport const logWarn = (msg: string, meta: any = {}) => logger.warn(msg, meta);\r\nexport const logError = (msg: string, meta: any = {}) => logger.error(msg, meta);\r\n"]}
@@ -0,0 +1,23 @@
1
+ import { Request, Response, NextFunction } from "express";
2
+ export interface AuthOptions {
3
+ jwtSecret: string;
4
+ jwtExpiresIn?: string | number;
5
+ googleClientId?: string;
6
+ }
7
+ export interface ProtectOptions {
8
+ required?: boolean;
9
+ roles?: string[];
10
+ }
11
+ export declare class AuthManager {
12
+ private jwtAdapter;
13
+ private googleAdapter?;
14
+ constructor(opts: AuthOptions);
15
+ sign(payload: object, options?: {
16
+ expiresIn?: string | number;
17
+ jti?: string;
18
+ }): string;
19
+ verify(token: string): string | import("jsonwebtoken").Jwt | import("jsonwebtoken").JwtPayload;
20
+ verifyGoogleIdToken(idToken: string): Promise<import("../adapters/GoogleAdapter.js").GoogleTokenPayload>;
21
+ protect(options?: ProtectOptions): (req: Request, res: Response, next: NextFunction) => void;
22
+ }
23
+ //# sourceMappingURL=AuthManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../../src/managers/AuthManager.ts"],"names":[],"mappings":"AA4GA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,IAAI,EAAE,WAAW;IAsB7B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;IAK7E,MAAM,CAAC,KAAK,EAAE,MAAM;IAKd,mBAAmB,CAAC,OAAO,EAAE,MAAM;IAezC,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,IAIpB,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY;CA2D9D"}