exisjs 0.9.0 → 0.9.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 (123) hide show
  1. package/dist/config/config.d.ts.map +1 -1
  2. package/dist/config/config.js +2 -1
  3. package/dist/config/config.js.map +1 -1
  4. package/dist/config/types.d.ts +5 -0
  5. package/dist/config/types.d.ts.map +1 -1
  6. package/dist/database/lifecycle.d.ts +19 -2
  7. package/dist/database/lifecycle.d.ts.map +1 -1
  8. package/dist/database/lifecycle.js +92 -53
  9. package/dist/database/lifecycle.js.map +1 -1
  10. package/dist/decorators/transaction.d.ts +0 -21
  11. package/dist/decorators/transaction.d.ts.map +1 -1
  12. package/dist/decorators/transaction.js +52 -32
  13. package/dist/decorators/transaction.js.map +1 -1
  14. package/dist/docs/content/boundaries.mdx +2 -0
  15. package/dist/docs/content/config.mdx +4 -2
  16. package/dist/docs/content/decorators.mdx +1 -1
  17. package/dist/docs/content/middleware.mdx +4 -2
  18. package/dist/docs/content/requests.mdx +2 -0
  19. package/dist/docs/content/responses.mdx +54 -0
  20. package/dist/docs/content/validation.mdx +46 -11
  21. package/dist/docs/reference/README.md +16 -16
  22. package/dist/docs/reference/config.mdx +2 -1
  23. package/dist/docs/reference/database.mdx +3 -2
  24. package/dist/docs/reference/middleware.mdx +1 -1
  25. package/dist/docs/reference/sanitize.mdx +129 -134
  26. package/dist/docs/reference/validator.mdx +11 -3
  27. package/dist/middleware/compression.d.ts.map +1 -1
  28. package/dist/middleware/compression.js +6 -5
  29. package/dist/middleware/compression.js.map +1 -1
  30. package/dist/middleware/middleware.d.ts.map +1 -1
  31. package/dist/middleware/middleware.js +47 -34
  32. package/dist/middleware/middleware.js.map +1 -1
  33. package/dist/router/controller-registrar.d.ts.map +1 -1
  34. package/dist/router/controller-registrar.js +4 -7
  35. package/dist/router/controller-registrar.js.map +1 -1
  36. package/dist/router/route-scanner.d.ts +12 -4
  37. package/dist/router/route-scanner.d.ts.map +1 -1
  38. package/dist/router/route-scanner.js +46 -31
  39. package/dist/router/route-scanner.js.map +1 -1
  40. package/dist/router/router.d.ts +3 -0
  41. package/dist/router/router.d.ts.map +1 -1
  42. package/dist/router/router.js +40 -35
  43. package/dist/router/router.js.map +1 -1
  44. package/dist/router/scanner/boundary-loader.d.ts.map +1 -1
  45. package/dist/router/scanner/boundary-loader.js +25 -30
  46. package/dist/router/scanner/boundary-loader.js.map +1 -1
  47. package/dist/router/scanner/functional-compiler.d.ts.map +1 -1
  48. package/dist/router/scanner/functional-compiler.js +29 -29
  49. package/dist/router/scanner/functional-compiler.js.map +1 -1
  50. package/dist/sanitize/index.d.ts +29 -3
  51. package/dist/sanitize/index.d.ts.map +1 -1
  52. package/dist/sanitize/index.js +91 -32
  53. package/dist/sanitize/index.js.map +1 -1
  54. package/dist/server/adapters/bun-adapter.d.ts +1 -1
  55. package/dist/server/adapters/bun-adapter.d.ts.map +1 -1
  56. package/dist/server/adapters/bun-adapter.js.map +1 -1
  57. package/dist/server/app.d.ts.map +1 -1
  58. package/dist/server/app.js +5 -2
  59. package/dist/server/app.js.map +1 -1
  60. package/dist/server/bootstrapper.d.ts.map +1 -1
  61. package/dist/server/bootstrapper.js +1 -1
  62. package/dist/server/bootstrapper.js.map +1 -1
  63. package/dist/server/helpers/body-parser.d.ts +1 -1
  64. package/dist/server/helpers/body-parser.d.ts.map +1 -1
  65. package/dist/server/helpers/body-parser.js +9 -7
  66. package/dist/server/helpers/body-parser.js.map +1 -1
  67. package/dist/server/helpers/conditional.d.ts +60 -0
  68. package/dist/server/helpers/conditional.d.ts.map +1 -0
  69. package/dist/server/helpers/conditional.js +189 -0
  70. package/dist/server/helpers/conditional.js.map +1 -0
  71. package/dist/server/helpers/etag.d.ts +0 -1
  72. package/dist/server/helpers/etag.d.ts.map +1 -1
  73. package/dist/server/helpers/etag.js +0 -10
  74. package/dist/server/helpers/etag.js.map +1 -1
  75. package/dist/server/helpers/index.d.ts +2 -1
  76. package/dist/server/helpers/index.d.ts.map +1 -1
  77. package/dist/server/helpers/index.js +16 -2
  78. package/dist/server/helpers/index.js.map +1 -1
  79. package/dist/server/request-handler.d.ts.map +1 -1
  80. package/dist/server/request-handler.js +12 -2
  81. package/dist/server/request-handler.js.map +1 -1
  82. package/dist/server/request.d.ts +11 -3
  83. package/dist/server/request.d.ts.map +1 -1
  84. package/dist/server/request.js +41 -83
  85. package/dist/server/request.js.map +1 -1
  86. package/dist/server/response.d.ts +43 -2
  87. package/dist/server/response.d.ts.map +1 -1
  88. package/dist/server/response.js +151 -70
  89. package/dist/server/response.js.map +1 -1
  90. package/dist/validator/builder.d.ts +12 -1
  91. package/dist/validator/builder.d.ts.map +1 -1
  92. package/dist/validator/builder.js +74 -41
  93. package/dist/validator/builder.js.map +1 -1
  94. package/dist/validator/compile.d.ts +7 -2
  95. package/dist/validator/compile.d.ts.map +1 -1
  96. package/dist/validator/compile.js +85 -54
  97. package/dist/validator/compile.js.map +1 -1
  98. package/dist/validator/engine.d.ts +75 -6
  99. package/dist/validator/engine.d.ts.map +1 -1
  100. package/dist/validator/engine.js +483 -540
  101. package/dist/validator/engine.js.map +1 -1
  102. package/dist/validator/error.d.ts.map +1 -1
  103. package/dist/validator/error.js +7 -0
  104. package/dist/validator/error.js.map +1 -1
  105. package/dist/validator/rules.d.ts +66 -7
  106. package/dist/validator/rules.d.ts.map +1 -1
  107. package/dist/validator/rules.js +435 -109
  108. package/dist/validator/rules.js.map +1 -1
  109. package/dist/validator/tex-types.d.ts +15 -0
  110. package/dist/validator/tex-types.d.ts.map +1 -1
  111. package/dist/validator/tex-types.js +127 -64
  112. package/dist/validator/tex-types.js.map +1 -1
  113. package/dist/validator/text.d.ts +2 -0
  114. package/dist/validator/text.d.ts.map +1 -1
  115. package/dist/validator/text.js +31 -13
  116. package/dist/validator/text.js.map +1 -1
  117. package/dist/validator/types.d.ts +15 -0
  118. package/dist/validator/types.d.ts.map +1 -1
  119. package/package.json +3 -5
  120. package/dist/sanitize/sanitize.d.ts +0 -33
  121. package/dist/sanitize/sanitize.d.ts.map +0 -1
  122. package/dist/sanitize/sanitize.js +0 -104
  123. package/dist/sanitize/sanitize.js.map +0 -1
@@ -19,9 +19,24 @@ export interface TexStringOptions extends TexBaseOptions {
19
19
  mask?: boolean;
20
20
  preventSql?: boolean;
21
21
  preventTraversal?: boolean;
22
+ /** Exact length in characters */
23
+ length?: number;
24
+ /** The value must match (after trim / case changes) */
25
+ pattern?: RegExp;
26
+ default?: TexDefaultValue<string>;
27
+ }
28
+ export interface TexUrlOptions extends TexBaseOptions {
29
+ /** Allowed schemes, default `['http', 'https']` */
30
+ protocols?: string[];
31
+ trim?: boolean;
32
+ min?: number;
33
+ max?: number;
34
+ pattern?: RegExp;
22
35
  default?: TexDefaultValue<string>;
23
36
  }
24
37
  export interface TexNumberOptions extends TexBaseOptions {
38
+ /** Whole numbers only */
39
+ int?: boolean;
25
40
  min?: number;
26
41
  max?: number;
27
42
  coerce?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validator/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validator/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exisjs",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "Fast, lightweight TypeScript backend framework for Node.js with file-system routing, built-in validation, dependency injection and OpenAPI docs",
5
5
  "keywords": [
6
6
  "exisjs",
@@ -142,10 +142,9 @@
142
142
  "dotenv-expand": "^13.0.0",
143
143
  "esbuild": "^0.28.2",
144
144
  "fast-querystring": "^1.1.2",
145
- "fresh": "^0.5.2",
146
145
  "mime-types": "^3.0.2",
147
- "pino": "^10.3.1",
148
- "pino-pretty": "^13.1.3",
146
+ "pino": "^10.4.0",
147
+ "pino-pretty": "^13.2.0",
149
148
  "tsx": "^4.23.15",
150
149
  "typescript": "^5.9.3"
151
150
  },
@@ -189,7 +188,6 @@
189
188
  "@types/bun": "^1.4.2",
190
189
  "@types/busboy": "^1.5.4",
191
190
  "@types/content-disposition": "^0.5.9",
192
- "@types/fresh": "^0.5.3",
193
191
  "@types/mime-types": "^3.0.1",
194
192
  "@types/node": "^26.4.0",
195
193
  "fast-json-stringify": "^7.0.1",
@@ -1,33 +0,0 @@
1
- /**
2
- * ExisJS Sanitize Engine
3
- *
4
- * A collection of pure functions for transforming data before business logic validation.
5
- * These are designed to be composable with the `ValidatorType.sanitize()` method.
6
- */
7
- export declare const sanitize: {
8
- trim: (val: any) => any;
9
- toLowerCase: (val: any) => any;
10
- toUpperCase: (val: any) => any;
11
- collapseWhitespace: (val: any) => any;
12
- stripHtml: (val: any) => any;
13
- escapeHtml: (val: any) => any;
14
- normalizeUnicode: (val: any) => any;
15
- slugify: (val: any) => any;
16
- truncate: (length: number) => (val: any) => any;
17
- removeNonAlphanumeric: (val: any) => any;
18
- normalizeLineEndings: (val: any) => any;
19
- round: (val: number) => number;
20
- clamp: (min: number, max: number) => (val: number) => number;
21
- defaultIfNaN: (fallback: number) => (val: number) => number;
22
- normalizeToIsoString: (val: Date) => string;
23
- stripTime: (val: Date) => Date;
24
- dedupe: <T>(val: T[]) => T[];
25
- compact: <T>(val: T[]) => Exclude<T, null | undefined | "">[];
26
- trimElements: (val: string[]) => string[];
27
- limitLength: <T>(length: number) => (val: T[]) => T[];
28
- stripUnknownKeys: <T extends Record<string, any>>(allowedKeys: (keyof T)[]) => (val: T) => T;
29
- deepTrimStringValues: <T extends Record<string, any>>(val: T) => T;
30
- omit: <T extends Record<string, any>, K extends keyof T>(keys: K[]) => (val: T) => Omit<T, K>;
31
- pick: <T extends Record<string, any>, K extends keyof T>(keys: K[]) => (val: T) => Pick<T, K>;
32
- };
33
- //# sourceMappingURL=sanitize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/sanitize/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,eAAO,MAAM,QAAQ;gBALb,GAAG,KAAG,GAAG;uBAAT,GAAG,KAAG,GAAG;uBAAT,GAAG,KAAG,GAAG;8BAAT,GAAG,KAAG,GAAG;qBAAT,GAAG,KAAG,GAAG;sBAAT,GAAG,KAAG,GAAG;4BAAT,GAAG,KAAG,GAAG;mBAAT,GAAG,KAAG,GAAG;uBAyCJ,MAAM,MACd,KAAK,GAAG,KAAG,GAAG;iCA1CX,GAAG,KAAG,GAAG;gCAAT,GAAG,KAAG,GAAG;iBAsDF,MAAM,KAAG,MAAM;iBAGpB,MAAM,OAAO,MAAM,MACxB,KAAK,MAAM,KAAG,MAAM;6BAIV,MAAM,MAChB,KAAK,MAAM,KAAG,MAAM;gCAKK,IAAI,KAAG,MAAM;qBAExB,IAAI,KAAG,IAAI;aAQnB,CAAC,OAAO,CAAC,EAAE,KAAG,CAAC,EAAE;cAEhB,CAAC,OAAO,CAAC,EAAE,KAAG,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE;wBAKvC,MAAM,EAAE,KAAG,MAAM,EAAE;kBAIpC,CAAC,UAAU,MAAM,MACjB,KAAK,CAAC,EAAE,KAAG,CAAC,EAAE;uBAMd,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,MACvD,KAAK,CAAC,KAAG,CAAC;2BAQU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAG,CAAC;WAmB7D,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,EAAE,MAC3D,KAAK,CAAC,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;WASnB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,EAAE,MAC3D,KAAK,CAAC,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;CAOvB,CAAA"}
@@ -1,104 +0,0 @@
1
- "use strict";
2
- /**
3
- * ExisJS Sanitize Engine
4
- *
5
- * A collection of pure functions for transforming data before business logic validation.
6
- * These are designed to be composable with the `ValidatorType.sanitize()` method.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.sanitize = void 0;
10
- const safeString = (fn) => (val) => {
11
- if (val === null || val === undefined)
12
- return val;
13
- return typeof val === 'string' ? fn(val) : val;
14
- };
15
- exports.sanitize = {
16
- // ─── String Sanitizers ────────────────────────────────────────────────────────
17
- trim: safeString((val) => val.trim()),
18
- toLowerCase: safeString((val) => val.toLowerCase()),
19
- toUpperCase: safeString((val) => val.toUpperCase()),
20
- collapseWhitespace: safeString((val) => val.replace(/\s+/g, ' ')),
21
- stripHtml: safeString((val) => val.replace(/<[^>]*>?/gm, '')),
22
- escapeHtml: safeString((val) => val.replace(/[&<>"']/g, (m) => {
23
- const map = {
24
- '&': '&amp;',
25
- '<': '&lt;',
26
- '>': '&gt;',
27
- '"': '&quot;',
28
- "'": '&#39;',
29
- };
30
- return map[m] || m;
31
- })),
32
- normalizeUnicode: safeString((val) => val.normalize('NFC')),
33
- slugify: safeString((val) => val
34
- .toLowerCase()
35
- .replace(/[^a-z0-9]+/g, '-')
36
- .replace(/(^-|-$)/g, '')),
37
- truncate: (length) => (val) => {
38
- if (val === null || val === undefined || typeof val !== 'string')
39
- return val;
40
- return val.length > length ? val.substring(0, length) : val;
41
- },
42
- removeNonAlphanumeric: safeString((val) => val.replace(/[^a-zA-Z0-9]/g, '')),
43
- normalizeLineEndings: safeString((val) => val.replace(/\r\n/g, '\n')),
44
- // ─── Number Sanitizers ────────────────────────────────────────────────────────
45
- round: (val) => Math.round(val),
46
- clamp: (min, max) => (val) => Math.max(min, Math.min(max, val)),
47
- defaultIfNaN: (fallback) => (val) => Number.isNaN(val) ? fallback : val,
48
- // ─── Date Sanitizers ──────────────────────────────────────────────────────────
49
- normalizeToIsoString: (val) => val.toISOString(),
50
- stripTime: (val) => {
51
- const d = new Date(val);
52
- d.setHours(0, 0, 0, 0);
53
- return d;
54
- },
55
- // ─── Array Sanitizers ─────────────────────────────────────────────────────────
56
- dedupe: (val) => Array.from(new Set(val)),
57
- compact: (val) => val.filter((v) => v !== null && v !== undefined && v !== ''),
58
- trimElements: (val) => val.map((v) => (typeof v === 'string' ? v.trim() : v)),
59
- limitLength: (length) => (val) => val.slice(0, length),
60
- // ─── Object Sanitizers ────────────────────────────────────────────────────────
61
- stripUnknownKeys: (allowedKeys) => (val) => {
62
- const res = {};
63
- for (const key of allowedKeys) {
64
- if (key in val)
65
- res[key] = val[key];
66
- }
67
- return res;
68
- },
69
- deepTrimStringValues: (val) => {
70
- const walk = (obj) => {
71
- if (typeof obj === 'string')
72
- return obj.trim();
73
- if (Array.isArray(obj))
74
- return obj.map(walk);
75
- if (obj !== null && typeof obj === 'object') {
76
- const res = {};
77
- for (const k in obj) {
78
- if (Object.prototype.hasOwnProperty.call(obj, k)) {
79
- res[k] = walk(obj[k]);
80
- }
81
- }
82
- return res;
83
- }
84
- return obj;
85
- };
86
- return walk(val);
87
- },
88
- omit: (keys) => (val) => {
89
- const res = { ...val };
90
- for (const k of keys) {
91
- delete res[k];
92
- }
93
- return res;
94
- },
95
- pick: (keys) => (val) => {
96
- const res = {};
97
- for (const k of keys) {
98
- if (k in val)
99
- res[k] = val[k];
100
- }
101
- return res;
102
- },
103
- };
104
- //# sourceMappingURL=sanitize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/sanitize/sanitize.ts"],"names":[],"mappings":"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"}