@zintrust/core 0.4.18 → 0.4.20

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 (58) hide show
  1. package/package.json +1 -1
  2. package/src/cli/commands/AddCommand.d.ts +16 -0
  3. package/src/cli/commands/AddCommand.d.ts.map +1 -1
  4. package/src/cli/commands/AddCommand.js +157 -28
  5. package/src/cli/commands/DockerCommand.d.ts.map +1 -1
  6. package/src/cli/commands/DockerCommand.js +32 -4
  7. package/src/cli/commands/StartCommand.d.ts +7 -0
  8. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  9. package/src/cli/commands/StartCommand.js +109 -20
  10. package/src/config/middleware.d.ts +23 -0
  11. package/src/config/middleware.d.ts.map +1 -1
  12. package/src/config/middleware.js +66 -31
  13. package/src/functions/cloudflare.d.ts.map +1 -1
  14. package/src/functions/cloudflare.js +28 -12
  15. package/src/http/Kernel.d.ts.map +1 -1
  16. package/src/http/Kernel.js +27 -1
  17. package/src/index.d.ts +2 -0
  18. package/src/index.d.ts.map +1 -1
  19. package/src/index.js +5 -3
  20. package/src/middleware/AuthMiddleware.d.ts +2 -0
  21. package/src/middleware/AuthMiddleware.d.ts.map +1 -1
  22. package/src/middleware/AuthMiddleware.js +8 -1
  23. package/src/middleware/BulletproofAuthMiddleware.d.ts +2 -0
  24. package/src/middleware/BulletproofAuthMiddleware.d.ts.map +1 -1
  25. package/src/middleware/BulletproofAuthMiddleware.js +13 -5
  26. package/src/middleware/CsrfMiddleware.d.ts +2 -0
  27. package/src/middleware/CsrfMiddleware.d.ts.map +1 -1
  28. package/src/middleware/CsrfMiddleware.js +9 -3
  29. package/src/middleware/ErrorHandlerMiddleware.d.ts +5 -1
  30. package/src/middleware/ErrorHandlerMiddleware.d.ts.map +1 -1
  31. package/src/middleware/ErrorHandlerMiddleware.js +12 -2
  32. package/src/middleware/JwtAuthMiddleware.d.ts +2 -0
  33. package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -1
  34. package/src/middleware/JwtAuthMiddleware.js +39 -4
  35. package/src/middleware/MiddlewareFailureResponder.d.ts +15 -0
  36. package/src/middleware/MiddlewareFailureResponder.d.ts.map +1 -0
  37. package/src/middleware/MiddlewareFailureResponder.js +15 -0
  38. package/src/middleware/RateLimiter.d.ts +2 -0
  39. package/src/middleware/RateLimiter.d.ts.map +1 -1
  40. package/src/middleware/RateLimiter.js +10 -4
  41. package/src/middleware/SecurityMiddleware.d.ts +1 -1
  42. package/src/middleware/SecurityMiddleware.d.ts.map +1 -1
  43. package/src/middleware/SecurityMiddleware.js +38 -7
  44. package/src/middleware/ValidationMiddleware.d.ts +11 -6
  45. package/src/middleware/ValidationMiddleware.d.ts.map +1 -1
  46. package/src/middleware/ValidationMiddleware.js +48 -19
  47. package/src/middleware/index.d.ts +1 -0
  48. package/src/middleware/index.d.ts.map +1 -1
  49. package/src/middleware/index.js +1 -0
  50. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  51. package/src/runtime/RuntimeAdapter.js +12 -2
  52. package/src/runtime/WorkersModule.d.ts.map +1 -1
  53. package/src/runtime/WorkersModule.js +4 -3
  54. package/src/security/Xss.d.ts +2 -2
  55. package/src/security/Xss.d.ts.map +1 -1
  56. package/src/security/Xss.js +3 -4
  57. package/src/templates/project/basic/app/Middleware/AuthFailureResponder.ts.tpl +10 -0
  58. package/src/templates/project/basic/config/middleware.ts.tpl +18 -0
@@ -2,11 +2,10 @@
2
2
  * XSS Sanitizer
3
3
  * Recursive, zero-dependency input sanitization utility.
4
4
  *
5
- * This is intentionally conservative:
6
- * - Strings: strip tags, then escape HTML entities.
5
+ * This is intentionally conservative for request-body handling:
6
+ * - Strings: strip markup tags but preserve plain text characters.
7
7
  * - Arrays/Objects: sanitize recursively.
8
8
  */
9
- import { XssProtection } from './XssProtection.js';
10
9
  const stripTags = (value) => {
11
10
  // Remove all HTML tags in linear time (no regex backtracking / ReDoS risk).
12
11
  let out = '';
@@ -28,7 +27,7 @@ const stripTags = (value) => {
28
27
  };
29
28
  const sanitizeRecursive = (input, seen) => {
30
29
  if (typeof input === 'string') {
31
- return XssProtection.escape(stripTags(input));
30
+ return stripTags(input);
32
31
  }
33
32
  if (Array.isArray(input)) {
34
33
  if (seen.has(input))
@@ -0,0 +1,10 @@
1
+ import type { MiddlewareFailureResponder } from '@zintrust/core';
2
+
3
+ export const authFailureResponder: MiddlewareFailureResponder = async (_req, res, context) => {
4
+ res.setStatus(context.statusCode).json({
5
+ error: {
6
+ code: context.reason,
7
+ message: context.message,
8
+ },
9
+ });
10
+ };
@@ -9,6 +9,12 @@ import type { MiddlewaresType } from '@zintrust/core';
9
9
  * 2. Import it below.
10
10
  * 3. Register route middleware under `route` or append global middleware under `global`.
11
11
  * 4. Use the route key in `routes/*.ts`.
12
+ * 5. Use `responders` when you only want to reshape built-in failure payloads.
13
+ *
14
+ * Built-in middleware keys are overrideable by reusing the same key under `route`.
15
+ * For example, `route.jwt = MyJwtMiddleware` replaces the framework `jwt` middleware
16
+ * anywhere that key is used, including shared global slots such as `log`, `error`,
17
+ * `security`, `rateLimit`, `csrf`, and `sanitizeBody`.
12
18
  *
13
19
  * For custom route keys, extend the framework type locally in your route file:
14
20
  * `type AppMiddlewareKey = MiddlewareKey | 'yourMiddleware';`
@@ -16,6 +22,8 @@ import type { MiddlewaresType } from '@zintrust/core';
16
22
 
17
23
  // Example custom middleware import:
18
24
  // import { AuthMiddleware } from '@app/Middleware/AuthMiddleware';
25
+ // import { authFailureResponder } from '@app/Middleware/AuthFailureResponder';
26
+ // import { JwtAuthOverrideMiddleware } from '@app/Middleware/JwtAuthOverrideMiddleware';
19
27
 
20
28
  export default {
21
29
  skipPaths: Env.get('CSRF_SKIP_PATHS', '')
@@ -37,10 +45,20 @@ export default {
37
45
  max: 20,
38
46
  message: 'Too many user mutation requests, please try again later.',
39
47
  },
48
+ responders: {
49
+ // auth: authFailureResponder,
50
+ // jwt: authFailureResponder,
51
+ // bulletproof: authFailureResponder,
52
+ // csrf: authFailureResponder,
53
+ // rateLimit: authFailureResponder,
54
+ // error: authFailureResponder,
55
+ },
40
56
  global: [
41
57
  // AuthMiddleware,
42
58
  ],
43
59
  route: {
44
60
  // authMiddleware: AuthMiddleware,
61
+ // Plug-and-play built-in override example:
62
+ // jwt: JwtAuthOverrideMiddleware,
45
63
  },
46
64
  } as MiddlewaresType;