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.
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +2 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +5 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/database/lifecycle.d.ts +19 -2
- package/dist/database/lifecycle.d.ts.map +1 -1
- package/dist/database/lifecycle.js +92 -53
- package/dist/database/lifecycle.js.map +1 -1
- package/dist/decorators/transaction.d.ts +0 -21
- package/dist/decorators/transaction.d.ts.map +1 -1
- package/dist/decorators/transaction.js +52 -32
- package/dist/decorators/transaction.js.map +1 -1
- package/dist/docs/content/boundaries.mdx +2 -0
- package/dist/docs/content/config.mdx +4 -2
- package/dist/docs/content/decorators.mdx +1 -1
- package/dist/docs/content/middleware.mdx +4 -2
- package/dist/docs/content/requests.mdx +2 -0
- package/dist/docs/content/responses.mdx +54 -0
- package/dist/docs/content/validation.mdx +46 -11
- package/dist/docs/reference/README.md +16 -16
- package/dist/docs/reference/config.mdx +2 -1
- package/dist/docs/reference/database.mdx +3 -2
- package/dist/docs/reference/middleware.mdx +1 -1
- package/dist/docs/reference/sanitize.mdx +129 -134
- package/dist/docs/reference/validator.mdx +11 -3
- package/dist/middleware/compression.d.ts.map +1 -1
- package/dist/middleware/compression.js +6 -5
- package/dist/middleware/compression.js.map +1 -1
- package/dist/middleware/middleware.d.ts.map +1 -1
- package/dist/middleware/middleware.js +47 -34
- package/dist/middleware/middleware.js.map +1 -1
- package/dist/router/controller-registrar.d.ts.map +1 -1
- package/dist/router/controller-registrar.js +4 -7
- package/dist/router/controller-registrar.js.map +1 -1
- package/dist/router/route-scanner.d.ts +12 -4
- package/dist/router/route-scanner.d.ts.map +1 -1
- package/dist/router/route-scanner.js +46 -31
- package/dist/router/route-scanner.js.map +1 -1
- package/dist/router/router.d.ts +3 -0
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +40 -35
- package/dist/router/router.js.map +1 -1
- package/dist/router/scanner/boundary-loader.d.ts.map +1 -1
- package/dist/router/scanner/boundary-loader.js +25 -30
- package/dist/router/scanner/boundary-loader.js.map +1 -1
- package/dist/router/scanner/functional-compiler.d.ts.map +1 -1
- package/dist/router/scanner/functional-compiler.js +29 -29
- package/dist/router/scanner/functional-compiler.js.map +1 -1
- package/dist/sanitize/index.d.ts +29 -3
- package/dist/sanitize/index.d.ts.map +1 -1
- package/dist/sanitize/index.js +91 -32
- package/dist/sanitize/index.js.map +1 -1
- package/dist/server/adapters/bun-adapter.d.ts +1 -1
- package/dist/server/adapters/bun-adapter.d.ts.map +1 -1
- package/dist/server/adapters/bun-adapter.js.map +1 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +5 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/bootstrapper.d.ts.map +1 -1
- package/dist/server/bootstrapper.js +1 -1
- package/dist/server/bootstrapper.js.map +1 -1
- package/dist/server/helpers/body-parser.d.ts +1 -1
- package/dist/server/helpers/body-parser.d.ts.map +1 -1
- package/dist/server/helpers/body-parser.js +9 -7
- package/dist/server/helpers/body-parser.js.map +1 -1
- package/dist/server/helpers/conditional.d.ts +60 -0
- package/dist/server/helpers/conditional.d.ts.map +1 -0
- package/dist/server/helpers/conditional.js +189 -0
- package/dist/server/helpers/conditional.js.map +1 -0
- package/dist/server/helpers/etag.d.ts +0 -1
- package/dist/server/helpers/etag.d.ts.map +1 -1
- package/dist/server/helpers/etag.js +0 -10
- package/dist/server/helpers/etag.js.map +1 -1
- package/dist/server/helpers/index.d.ts +2 -1
- package/dist/server/helpers/index.d.ts.map +1 -1
- package/dist/server/helpers/index.js +16 -2
- package/dist/server/helpers/index.js.map +1 -1
- package/dist/server/request-handler.d.ts.map +1 -1
- package/dist/server/request-handler.js +12 -2
- package/dist/server/request-handler.js.map +1 -1
- package/dist/server/request.d.ts +11 -3
- package/dist/server/request.d.ts.map +1 -1
- package/dist/server/request.js +41 -83
- package/dist/server/request.js.map +1 -1
- package/dist/server/response.d.ts +43 -2
- package/dist/server/response.d.ts.map +1 -1
- package/dist/server/response.js +151 -70
- package/dist/server/response.js.map +1 -1
- package/dist/validator/builder.d.ts +12 -1
- package/dist/validator/builder.d.ts.map +1 -1
- package/dist/validator/builder.js +74 -41
- package/dist/validator/builder.js.map +1 -1
- package/dist/validator/compile.d.ts +7 -2
- package/dist/validator/compile.d.ts.map +1 -1
- package/dist/validator/compile.js +85 -54
- package/dist/validator/compile.js.map +1 -1
- package/dist/validator/engine.d.ts +75 -6
- package/dist/validator/engine.d.ts.map +1 -1
- package/dist/validator/engine.js +483 -540
- package/dist/validator/engine.js.map +1 -1
- package/dist/validator/error.d.ts.map +1 -1
- package/dist/validator/error.js +7 -0
- package/dist/validator/error.js.map +1 -1
- package/dist/validator/rules.d.ts +66 -7
- package/dist/validator/rules.d.ts.map +1 -1
- package/dist/validator/rules.js +435 -109
- package/dist/validator/rules.js.map +1 -1
- package/dist/validator/tex-types.d.ts +15 -0
- package/dist/validator/tex-types.d.ts.map +1 -1
- package/dist/validator/tex-types.js +127 -64
- package/dist/validator/tex-types.js.map +1 -1
- package/dist/validator/text.d.ts +2 -0
- package/dist/validator/text.d.ts.map +1 -1
- package/dist/validator/text.js +31 -13
- package/dist/validator/text.js.map +1 -1
- package/dist/validator/types.d.ts +15 -0
- package/dist/validator/types.d.ts.map +1 -1
- package/package.json +3 -5
- package/dist/sanitize/sanitize.d.ts +0 -33
- package/dist/sanitize/sanitize.d.ts.map +0 -1
- package/dist/sanitize/sanitize.js +0 -104
- 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.
|
|
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.
|
|
148
|
-
"pino-pretty": "^13.
|
|
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
|
-
'&': '&',
|
|
25
|
-
'<': '<',
|
|
26
|
-
'>': '>',
|
|
27
|
-
'"': '"',
|
|
28
|
-
"'": ''',
|
|
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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"}
|