xypriss 3.2.1 → 3.2.3

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 (59) hide show
  1. package/README.md +98 -447
  2. package/dist/cjs/src/FiUp.js +85 -0
  3. package/dist/cjs/src/FiUp.js.map +1 -0
  4. package/dist/cjs/src/file-upload.js +14 -87
  5. package/dist/cjs/src/file-upload.js.map +1 -1
  6. package/dist/cjs/src/index.js +8 -5
  7. package/dist/cjs/src/index.js.map +1 -1
  8. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +51 -8
  9. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  10. package/dist/cjs/src/server/FastServer.js +9 -5
  11. package/dist/cjs/src/server/FastServer.js.map +1 -1
  12. package/dist/cjs/src/server/components/fastapi/FileUploadManager.js +31 -19
  13. package/dist/cjs/src/server/components/fastapi/FileUploadManager.js.map +1 -1
  14. package/dist/cjs/src/server/const/default.js +10 -6
  15. package/dist/cjs/src/server/const/default.js.map +1 -1
  16. package/dist/cjs/src/server/core/HttpServer.js +16 -7
  17. package/dist/cjs/src/server/core/HttpServer.js.map +1 -1
  18. package/dist/cjs/src/server/core/XyprissApp.js +2 -1
  19. package/dist/cjs/src/server/core/XyprissApp.js.map +1 -1
  20. package/dist/esm/src/FiUp.js +79 -0
  21. package/dist/esm/src/FiUp.js.map +1 -0
  22. package/dist/esm/src/file-upload.js +9 -83
  23. package/dist/esm/src/file-upload.js.map +1 -1
  24. package/dist/esm/src/index.js +3 -1
  25. package/dist/esm/src/index.js.map +1 -1
  26. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +51 -8
  27. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  28. package/dist/esm/src/server/FastServer.js +9 -5
  29. package/dist/esm/src/server/FastServer.js.map +1 -1
  30. package/dist/esm/src/server/components/fastapi/FileUploadManager.js +31 -19
  31. package/dist/esm/src/server/components/fastapi/FileUploadManager.js.map +1 -1
  32. package/dist/esm/src/server/const/default.js +10 -6
  33. package/dist/esm/src/server/const/default.js.map +1 -1
  34. package/dist/esm/src/server/core/HttpServer.js +16 -7
  35. package/dist/esm/src/server/core/HttpServer.js.map +1 -1
  36. package/dist/esm/src/server/core/XyprissApp.js +2 -1
  37. package/dist/esm/src/server/core/XyprissApp.js.map +1 -1
  38. package/dist/index.d.ts +154 -99
  39. package/package.json +4 -4
  40. package/dist/cjs/mods/security/src/core/crypt.js +0 -56
  41. package/dist/cjs/mods/security/src/core/crypt.js.map +0 -1
  42. package/dist/cjs/src/middleware/built-in/index.js +0 -325
  43. package/dist/cjs/src/middleware/built-in/index.js.map +0 -1
  44. package/dist/cjs/src/middleware/built-in/sqlInjection.js +0 -335
  45. package/dist/cjs/src/middleware/built-in/sqlInjection.js.map +0 -1
  46. package/dist/cjs/src/server/conf/rateLimitConfig.js +0 -35
  47. package/dist/cjs/src/server/conf/rateLimitConfig.js.map +0 -1
  48. package/dist/cjs/src/server/utils/wildcardMatcher.js +0 -92
  49. package/dist/cjs/src/server/utils/wildcardMatcher.js.map +0 -1
  50. package/dist/esm/mods/security/src/core/crypt.js +0 -54
  51. package/dist/esm/mods/security/src/core/crypt.js.map +0 -1
  52. package/dist/esm/src/middleware/built-in/index.js +0 -323
  53. package/dist/esm/src/middleware/built-in/index.js.map +0 -1
  54. package/dist/esm/src/middleware/built-in/sqlInjection.js +0 -333
  55. package/dist/esm/src/middleware/built-in/sqlInjection.js.map +0 -1
  56. package/dist/esm/src/server/conf/rateLimitConfig.js +0 -33
  57. package/dist/esm/src/server/conf/rateLimitConfig.js.map +0 -1
  58. package/dist/esm/src/server/utils/wildcardMatcher.js +0 -88
  59. package/dist/esm/src/server/utils/wildcardMatcher.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlInjection.js","sources":["../../../../../src/middleware/built-in/sqlInjection.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- 'use strict';
2
-
3
- const rateLimitConfig = (cf) => {
4
- return {
5
- enabled: cf?.rateLimit?.enabled ?? true,
6
- strategy: cf?.rateLimit?.strategy ?? "sliding-window",
7
- global: {
8
- requests: cf?.rateLimit?.global?.requests ?? 1000,
9
- window: cf?.rateLimit?.global?.window ?? "1h",
10
- },
11
- perIP: {
12
- requests: cf?.rateLimit?.perIP?.requests ?? 100,
13
- window: cf?.rateLimit?.perIP?.window ?? "1m",
14
- },
15
- perUser: cf?.rateLimit?.perUser
16
- ? {
17
- requests: cf?.rateLimit.perUser.requests ?? 50,
18
- window: cf?.rateLimit.perUser.window ?? "1m",
19
- }
20
- : undefined,
21
- headers: cf?.rateLimit?.headers,
22
- redis: cf?.rateLimit?.redis
23
- ? {
24
- host: cf?.rateLimit.redis.host ?? "localhost",
25
- port: cf?.rateLimit.redis.port ?? 6379,
26
- password: cf?.rateLimit.redis.password,
27
- db: cf?.rateLimit.redis.db ?? 0,
28
- keyPrefix: cf?.rateLimit.redis.keyPrefix ?? "xypriss:ratelimit:",
29
- }
30
- : undefined,
31
- };
32
- };
33
-
34
- exports.rateLimitConfig = rateLimitConfig;
35
- //# sourceMappingURL=rateLimitConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rateLimitConfig.js","sources":["../../../../../src/server/conf/rateLimitConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEa,MAAA,eAAe,GAAG,CAAC,EAA4B,KAAI;IAC5D,OAAO;AACH,QAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,IAAI,IAAI;AACvC,QAAA,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,IAAI,gBAAgB;AACrD,QAAA,MAAM,EAAE;YACJ,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI;YACjD,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;AAChD,SAAA;AACD,QAAA,KAAK,EAAE;YACH,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,IAAI,GAAG;YAC/C,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI;AAC/C,SAAA;AACD,QAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO;AAC3B,cAAE;gBACI,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9C,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI;AAC/C,aAAA;AACH,cAAE,SAAS;AACf,QAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO;AAC/B,QAAA,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK;AACvB,cAAE;gBACI,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,WAAW;gBAC7C,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI;AACtC,gBAAA,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ;gBACtC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;gBAC/B,SAAS,EACL,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,oBAAoB;AAC5D,aAAA;AACH,cAAE,SAAS;KAClB,CAAC;AACN;;;;"}
@@ -1,92 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Wildcard pattern matching utility for CORS origins
5
- *
6
- * Supports patterns like:
7
- * - "localhost:*" matches "localhost:3000", "localhost:8080", etc.
8
- * - "*.example.com" matches "api.example.com", "app.example.com", etc.
9
- * - "127.0.0.1:*" matches "127.0.0.1:3000", "127.0.0.1:8080", etc.
10
- * - "::1:*" matches "::1:3000", "::1:8080", etc.
11
- */
12
- /**
13
- * Converts a wildcard pattern to a regular expression
14
- * @param pattern - The wildcard pattern (e.g., "localhost:*", "*.example.com")
15
- * @returns RegExp object for matching
16
- */
17
- function patternToRegex(pattern) {
18
- // Escape special regex characters except for *
19
- const escaped = pattern
20
- .replace(/[.+?^${}()|[\]\\]/g, '\\$&') // Escape special chars
21
- .replace(/\*/g, '.*'); // Replace * with .*
22
- // Ensure exact match with ^ and $
23
- return new RegExp(`^${escaped}$`, 'i'); // Case insensitive
24
- }
25
- /**
26
- * Checks if an origin matches a wildcard pattern
27
- * @param origin - The origin to check (e.g., "http://localhost:3000")
28
- * @param pattern - The wildcard pattern (e.g., "localhost:*")
29
- * @returns true if the origin matches the pattern
30
- */
31
- function matchesWildcardPattern(origin, pattern) {
32
- // Handle exact matches first (no wildcards)
33
- if (!pattern.includes('*')) {
34
- return origin === pattern || origin.includes(pattern);
35
- }
36
- // Extract the host:port part from the origin URL
37
- let originHost;
38
- try {
39
- const url = new URL(origin);
40
- originHost = url.host; // This includes both hostname and port
41
- // Special handling for default ports
42
- if (url.protocol === 'https:' && url.port === '' && url.hostname === 'localhost') {
43
- originHost = 'localhost:443';
44
- }
45
- else if (url.protocol === 'http:' && url.port === '' && url.hostname === 'localhost') {
46
- originHost = 'localhost:80';
47
- }
48
- // Handle IPv6 addresses - remove brackets for pattern matching
49
- if (url.hostname.startsWith('[') && url.hostname.endsWith(']')) {
50
- const ipv6Host = url.hostname.slice(1, -1); // Remove brackets
51
- originHost = url.port ? `${ipv6Host}:${url.port}` : ipv6Host;
52
- }
53
- }
54
- catch {
55
- // If it's not a valid URL, treat it as a host:port string
56
- originHost = origin;
57
- }
58
- const regex = patternToRegex(pattern);
59
- return regex.test(originHost);
60
- }
61
- /**
62
- * Checks if an origin is allowed based on an array of patterns
63
- * @param origin - The origin to check
64
- * @param allowedOrigins - Array of allowed origins (can include wildcards)
65
- * @returns true if the origin is allowed
66
- */
67
- function isOriginAllowed(origin, allowedOrigins) {
68
- if (!origin || !allowedOrigins || allowedOrigins.length === 0) {
69
- return false;
70
- }
71
- return allowedOrigins.some(pattern => matchesWildcardPattern(origin, pattern));
72
- }
73
- /**
74
- * Creates a CORS origin function that supports wildcard patterns
75
- * @param allowedOrigins - Array of allowed origins (can include wildcards)
76
- * @returns Function compatible with cors middleware
77
- */
78
- function createWildcardOriginFunction(allowedOrigins) {
79
- return (origin, callback) => {
80
- // Allow requests with no origin (like mobile apps or curl requests)
81
- if (!origin) {
82
- return callback(null, true);
83
- }
84
- const allowed = isOriginAllowed(origin, allowedOrigins);
85
- callback(null, allowed);
86
- };
87
- }
88
-
89
- exports.createWildcardOriginFunction = createWildcardOriginFunction;
90
- exports.isOriginAllowed = isOriginAllowed;
91
- exports.matchesWildcardPattern = matchesWildcardPattern;
92
- //# sourceMappingURL=wildcardMatcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wildcardMatcher.js","sources":["../../../../../src/server/utils/wildcardMatcher.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;;;AAQG;AAEH;;;;AAIG;AACH,SAAS,cAAc,CAAC,OAAe,EAAA;;IAEnC,MAAM,OAAO,GAAG,OAAO;AAClB,SAAA,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC;AACrC,SAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;;IAG1B,OAAO,IAAI,MAAM,CAAC,CAAI,CAAA,EAAA,OAAO,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;AAKG;AACa,SAAA,sBAAsB,CAAC,MAAc,EAAE,OAAe,EAAA;;IAElE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACxB,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACzD;;AAGD,IAAA,IAAI,UAAkB,CAAC;AACvB,IAAA,IAAI;AACA,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAA,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;;AAGtB,QAAA,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE;YAC9E,UAAU,GAAG,eAAe,CAAC;SAChC;AAAM,aAAA,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE;YACpF,UAAU,GAAG,cAAc,CAAC;SAC/B;;AAGD,QAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5D,YAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,UAAU,GAAG,GAAG,CAAC,IAAI,GAAG,CAAG,EAAA,QAAQ,CAAI,CAAA,EAAA,GAAG,CAAC,IAAI,CAAA,CAAE,GAAG,QAAQ,CAAC;SAChE;KACJ;AAAC,IAAA,MAAM;;QAEJ,UAAU,GAAG,MAAM,CAAC;KACvB;AAED,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;AACtC,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC;AAED;;;;;AAKG;AACa,SAAA,eAAe,CAAC,MAAc,EAAE,cAAwB,EAAA;AACpE,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,QAAA,OAAO,KAAK,CAAC;KAChB;AAED,IAAA,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACnF,CAAC;AAED;;;;AAIG;AACG,SAAU,4BAA4B,CAAC,cAAwB,EAAA;AACjE,IAAA,OAAO,CAAC,MAA0B,EAAE,QAAsD,KAAI;;QAE1F,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC/B;QAED,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACxD,QAAA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,KAAC,CAAC;AACN;;;;;;"}
@@ -1,54 +0,0 @@
1
- import { Hash } from './hash/hash-core.js';
2
- import './hash/hash-types.js';
3
- import 'crypto';
4
- import './hash/hash-security.js';
5
- import './hash/hash-advanced.js';
6
- import '../algorithms/hash-algorithms.js';
7
- import { XyPrissSecurity } from './crypto.js';
8
- import { SecureRandom } from './random/random-core.js';
9
- import './random/random-types.js';
10
- import './random/random-sources.js';
11
- import 'nehonix-uri-processor';
12
- import '../utils/memory/index.js';
13
- import '../types.js';
14
-
15
- class Cryptog {
16
- constructor() {
17
- this.hash = Hash;
18
- this.crypto = XyPrissSecurity;
19
- this.random = SecureRandom.getInstance();
20
- }
21
- static getInstance() {
22
- if (!Cryptog.instance) {
23
- Cryptog.instance = new Cryptog();
24
- }
25
- return Cryptog.instance;
26
- }
27
- }
28
- /**
29
- * ### Cryptographic Core
30
- *
31
- * Primary cryptographic classes and utilities for secure random generation,
32
- * key management, validation, and buffer operations.
33
- *
34
- * @example
35
- * ```typescript
36
- * import { Cipher } from "xypriss-security";
37
- *
38
- * // Generate secure random bytes
39
- * const randomBytes = Cipher.random.getRandomBytes(32);
40
- *
41
- * // Generate secure UUID
42
- * const uuid = Cipher.random.generateSecureUUID();
43
- *
44
- * // Generate random integers
45
- * const randomInt = Cipher.random.getSecureRandomInt(1, 100);
46
- * ```
47
- * @author Seth Eleazar <https://github.com/iDevo-ll>
48
- * @version 1.1.6
49
- * @license MIT
50
- * @see {@link https://lab.nehonix.space/nehonix_viewer/_doc/Nehonix%20XyPrissSecurity} Official Documentation
51
- *
52
- */
53
- Cryptog.getInstance();
54
- //# sourceMappingURL=crypt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypt.js","sources":["../../../../../../mods/security/src/core/crypt.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,MAAM,OAAO,CAAA;AAOT,IAAA,WAAA,GAAA;QANgB,IAAI,CAAA,IAAA,GAAgB,IAAI,CAAC;QACzB,IAAM,CAAA,MAAA,GAA2B,eAAe,CAAC;AACjD,QAAA,IAAA,CAAA,MAAM,GAAiB,YAAY,CAAC,WAAW,EAAE,CAAC;KAI1C;AAEjB,IAAA,OAAO,WAAW,GAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACnB,YAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;SACpC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC;KAC3B;AACJ,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACmB,OAAO,CAAC,WAAW"}
@@ -1,323 +0,0 @@
1
- import helmet from 'helmet';
2
- import cors from 'cors';
3
- import rateLimit from 'express-rate-limit';
4
- import compression from 'compression';
5
- import hpp from 'hpp';
6
- import mongoSanitize from 'express-mongo-sanitize';
7
- import xss from 'xss';
8
- import morgan from 'morgan';
9
- import slowDown from 'express-slow-down';
10
- import ExpressBrute from 'express-brute';
11
- import multer from 'multer';
12
- import { doubleCsrf } from 'csrf-csrf';
13
-
14
- /**
15
- * XyPriss Built-in Middleware
16
- * Wrappers around popular middleware libraries
17
- */
18
- class BuiltInMiddleware {
19
- /**
20
- * Get Helmet middleware for security headers
21
- */
22
- static helmet(options = {}) {
23
- const defaultOptions = {
24
- contentSecurityPolicy: {
25
- directives: {
26
- defaultSrc: ["'self'"],
27
- scriptSrc: ["'self'"],
28
- styleSrc: ["'self'", "'unsafe-inline'"],
29
- imgSrc: ["'self'", "data:"],
30
- fontSrc: ["'self'"],
31
- },
32
- },
33
- crossOriginEmbedderPolicy: true,
34
- crossOriginOpenerPolicy: true,
35
- crossOriginResourcePolicy: { policy: "same-origin" },
36
- dnsPrefetchControl: { allow: false },
37
- frameguard: { action: "deny" },
38
- hidePoweredBy: true,
39
- hsts: {
40
- maxAge: 31536000,
41
- includeSubDomains: true,
42
- preload: false,
43
- },
44
- ieNoOpen: true,
45
- noSniff: true,
46
- originAgentCluster: true,
47
- permittedCrossDomainPolicies: false,
48
- referrerPolicy: { policy: "strict-origin-when-cross-origin" },
49
- xssFilter: true,
50
- };
51
- const config = { ...defaultOptions, ...options };
52
- return helmet(config);
53
- }
54
- /**
55
- * Get CORS middleware
56
- */
57
- static cors(options = {}) {
58
- const defaultOptions = {
59
- origin: true,
60
- methods: ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"],
61
- allowedHeaders: [
62
- "Content-Type",
63
- "Authorization",
64
- "X-Requested-With",
65
- ],
66
- credentials: false,
67
- maxAge: 86400, // 24 hours
68
- };
69
- const config = { ...defaultOptions, ...options };
70
- return cors(config);
71
- }
72
- /**
73
- * Get Rate Limiting middleware
74
- */
75
- static rateLimit(options = {}) {
76
- const defaultOptions = {
77
- windowMs: 15 * 60 * 1000, // 15 minutes
78
- max: 100, // limit each IP to 100 requests per windowMs
79
- message: {
80
- error: "Too many requests from this IP, please try again later.",
81
- retryAfter: "Please try again later.",
82
- },
83
- standardHeaders: true,
84
- legacyHeaders: false,
85
- handler: (_req, res) => {
86
- res.status(429).json({
87
- error: "Too many requests",
88
- message: "Rate limit exceeded. Please try again later.",
89
- retryAfter: Math.ceil(options.windowMs / 1000) || 900,
90
- });
91
- },
92
- };
93
- const config = { ...defaultOptions, ...options };
94
- return rateLimit(config);
95
- }
96
- /**
97
- * Get Compression middleware
98
- */
99
- static compression(options = {}) {
100
- const defaultOptions = {
101
- level: 6,
102
- threshold: 1024, // Only compress responses >= 1KB
103
- filter: (req, res) => {
104
- // Don't compress responses with this request header
105
- if (req.headers["x-no-compression"]) {
106
- return false;
107
- }
108
- // Fallback to standard filter function
109
- return compression.filter(req, res);
110
- },
111
- };
112
- const config = { ...defaultOptions, ...options };
113
- return compression(config);
114
- }
115
- /**
116
- * CSRF protection middleware using csrf-csrf library
117
- */
118
- static csrf(options = {}) {
119
- const defaultOptions = {
120
- getSecret: () => "your-secret-key", // In production, use a proper secret
121
- cookieName: "__Host-psifi.x-csrf-token",
122
- cookieOptions: {
123
- httpOnly: true,
124
- sameSite: "strict",
125
- secure: process.env.NODE_ENV === "production",
126
- maxAge: 3600000, // 1 hour
127
- },
128
- size: 64,
129
- ignoredMethods: ["GET", "HEAD", "OPTIONS"],
130
- getTokenFromRequest: (req) => {
131
- return (req.headers["x-csrf-token"] ||
132
- req.body?._csrf ||
133
- req.query?._csrf);
134
- },
135
- };
136
- const config = { ...defaultOptions, ...options };
137
- const { doubleCsrfProtection } = doubleCsrf(config);
138
- // Return the protection middleware
139
- return doubleCsrfProtection;
140
- }
141
- /**
142
- * Get Express Validator middleware for input validation
143
- * Simplified implementation - users should install express-validator separately
144
- */
145
- static validator(options = {}) {
146
- const defaultOptions = {
147
- sanitizeBody: true,
148
- checkBody: true,
149
- checkQuery: true,
150
- checkParams: true,
151
- };
152
- ({ ...defaultOptions, ...options });
153
- return (req, res, next) => {
154
- // Basic validation middleware - simplified
155
- // In production, use express-validator library directly
156
- console.log("[Validator] Basic validation middleware active");
157
- // Add basic validation helpers to request
158
- req.validation = {
159
- body: (field) => req.body?.[field],
160
- query: (field) => req.query?.[field],
161
- params: (field) => req.params?.[field],
162
- };
163
- next();
164
- };
165
- }
166
- /**
167
- * Get HPP (HTTP Parameter Pollution) protection middleware
168
- */
169
- static hpp(options = {}) {
170
- const defaultOptions = {
171
- whitelist: ["tags", "categories"], // Allow arrays for these parameters
172
- };
173
- const config = { ...defaultOptions, ...options };
174
- return hpp(config);
175
- }
176
- /**
177
- * Get MongoDB injection protection middleware
178
- */
179
- static mongoSanitize(options = {}) {
180
- const defaultOptions = {
181
- replaceWith: "_",
182
- onSanitize: (key, value) => {
183
- console.warn(`[MongoSanitize] Sanitized key: ${key}, value: ${value}`);
184
- },
185
- };
186
- const config = { ...defaultOptions, ...options };
187
- return mongoSanitize(config);
188
- }
189
- /**
190
- * Get XSS protection middleware
191
- */
192
- static xss(options = {}) {
193
- const defaultOptions = {
194
- whiteList: {
195
- a: ["href", "title"],
196
- b: [],
197
- i: [],
198
- strong: [],
199
- em: [],
200
- },
201
- };
202
- const config = { ...defaultOptions, ...options };
203
- return (req, _res, next) => {
204
- // Sanitize request body
205
- if (req.body) {
206
- req.body = this.sanitizeObject(req.body, config);
207
- }
208
- // Sanitize query parameters
209
- if (req.query) {
210
- req.query = this.sanitizeObject(req.query, config);
211
- }
212
- next();
213
- };
214
- }
215
- /**
216
- * Get Morgan logging middleware
217
- */
218
- static morgan(options = {}) {
219
- const defaultFormat = options.format || "combined";
220
- const defaultOptions = {
221
- skip: (_req, res) => res.statusCode < 400, // Only log errors by default
222
- stream: process.stdout,
223
- };
224
- const config = { ...defaultOptions, ...options };
225
- return morgan(defaultFormat, config);
226
- }
227
- /**
228
- * Get Slow Down middleware for progressive delays
229
- */
230
- static slowDown(options = {}) {
231
- const defaultOptions = {
232
- windowMs: 15 * 60 * 1000, // 15 minutes
233
- delayAfter: 2, // Allow 2 requests per windowMs without delay
234
- delayMs: 500, // Add 500ms delay per request after delayAfter
235
- maxDelayMs: 20000, // Maximum delay of 20 seconds
236
- skipFailedRequests: false,
237
- skipSuccessfulRequests: false,
238
- };
239
- const config = { ...defaultOptions, ...options };
240
- return slowDown(config);
241
- }
242
- /**
243
- * Get Express Brute middleware for brute force protection
244
- */
245
- static brute(options = {}) {
246
- const store = new ExpressBrute.MemoryStore();
247
- const defaultOptions = {
248
- freeRetries: 2,
249
- minWait: 5 * 60 * 1000, // 5 minutes
250
- maxWait: 60 * 60 * 1000, // 1 hour
251
- lifetime: 24 * 60 * 60, // 1 day (in seconds)
252
- failCallback: (_req, res, _next, nextValidRequestDate) => {
253
- res.status(429).json({
254
- error: "Too many failed attempts",
255
- message: "Account temporarily locked due to too many failed attempts",
256
- nextValidRequestDate: nextValidRequestDate,
257
- });
258
- },
259
- };
260
- const config = { ...defaultOptions, ...options };
261
- const bruteforce = new ExpressBrute(store, config);
262
- return bruteforce.prevent;
263
- }
264
- /**
265
- * Get Multer middleware for file uploads
266
- */
267
- static multer(options = {}) {
268
- const defaultOptions = {
269
- limits: {
270
- fileSize: 5 * 1024 * 1024, // 5MB limit
271
- files: 5, // Maximum 5 files
272
- },
273
- fileFilter: (_req, file, cb) => {
274
- // Allow only specific file types
275
- const allowedTypes = /jpeg|jpg|png|gif|pdf|doc|docx/;
276
- const extname = allowedTypes.test(file.originalname.toLowerCase());
277
- const mimetype = allowedTypes.test(file.mimetype);
278
- if (mimetype && extname) {
279
- return cb(null, true);
280
- }
281
- else {
282
- cb(new Error("Invalid file type. Only images and documents are allowed."));
283
- }
284
- },
285
- };
286
- const config = { ...defaultOptions, ...options };
287
- return multer(config);
288
- }
289
- /**
290
- * Get all default security middleware
291
- */
292
- static security(options = {}) {
293
- return {
294
- helmet: this.helmet(options.helmet),
295
- cors: this.cors(options.cors),
296
- rateLimit: this.rateLimit(options.rateLimit),
297
- compression: this.compression(options.compression),
298
- csrf: this.csrf(options.csrf),
299
- };
300
- }
301
- // Helper method for XSS sanitization
302
- static sanitizeObject(obj, config) {
303
- if (typeof obj === "string") {
304
- return xss(obj, config);
305
- }
306
- else if (Array.isArray(obj)) {
307
- return obj.map((item) => this.sanitizeObject(item, config));
308
- }
309
- else if (obj && typeof obj === "object") {
310
- const sanitized = {};
311
- for (const key in obj) {
312
- if (obj.hasOwnProperty(key)) {
313
- sanitized[key] = this.sanitizeObject(obj[key], config);
314
- }
315
- }
316
- return sanitized;
317
- }
318
- return obj;
319
- }
320
- }
321
-
322
- export { BuiltInMiddleware };
323
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/middleware/built-in/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}