qast 2.0.6 → 2.1.1

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 (41) hide show
  1. package/README.md +64 -1
  2. package/dist/adapters/drizzle.d.ts +1 -0
  3. package/dist/adapters/drizzle.d.ts.map +1 -1
  4. package/dist/adapters/drizzle.js +24 -0
  5. package/dist/adapters/drizzle.js.map +1 -1
  6. package/dist/adapters/knex.js +12 -0
  7. package/dist/adapters/knex.js.map +1 -1
  8. package/dist/adapters/mongoose.js +17 -0
  9. package/dist/adapters/mongoose.js.map +1 -1
  10. package/dist/adapters/prisma.js +21 -0
  11. package/dist/adapters/prisma.js.map +1 -1
  12. package/dist/adapters/sequelize.d.ts.map +1 -1
  13. package/dist/adapters/sequelize.js +28 -0
  14. package/dist/adapters/sequelize.js.map +1 -1
  15. package/dist/adapters/typeorm.d.ts +1 -0
  16. package/dist/adapters/typeorm.d.ts.map +1 -1
  17. package/dist/adapters/typeorm.js +32 -0
  18. package/dist/adapters/typeorm.js.map +1 -1
  19. package/dist/builder/query-builder.d.ts +16 -0
  20. package/dist/builder/query-builder.d.ts.map +1 -1
  21. package/dist/builder/query-builder.js +24 -0
  22. package/dist/builder/query-builder.js.map +1 -1
  23. package/dist/index.d.ts +3 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +10 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/openapi/filter-parameter.d.ts +43 -0
  28. package/dist/openapi/filter-parameter.d.ts.map +1 -0
  29. package/dist/openapi/filter-parameter.js +52 -0
  30. package/dist/openapi/filter-parameter.js.map +1 -0
  31. package/dist/parser/tokenizer.d.ts.map +1 -1
  32. package/dist/parser/tokenizer.js +4 -0
  33. package/dist/parser/tokenizer.js.map +1 -1
  34. package/dist/parser/validator.d.ts +6 -1
  35. package/dist/parser/validator.d.ts.map +1 -1
  36. package/dist/parser/validator.js +219 -0
  37. package/dist/parser/validator.js.map +1 -1
  38. package/dist/types/ast.d.ts +36 -1
  39. package/dist/types/ast.d.ts.map +1 -1
  40. package/dist/types/ast.js.map +1 -1
  41. package/package.json +7 -5
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RateLimiter = void 0;
4
+ exports.validateQueryFieldConstraints = validateQueryFieldConstraints;
4
5
  exports.validateQuery = validateQuery;
5
6
  exports.validateQueryComplexity = validateQueryComplexity;
6
7
  exports.extractFields = extractFields;
@@ -9,6 +10,224 @@ exports.sanitizeFieldName = sanitizeFieldName;
9
10
  exports.estimateQueryCost = estimateQueryCost;
10
11
  const errors_1 = require("../errors");
11
12
  const ast_1 = require("../types/ast");
13
+ const STRING_ONLY_OPS = new Set([
14
+ 'contains',
15
+ 'icontains',
16
+ 'startsWith',
17
+ 'istartsWith',
18
+ 'endsWith',
19
+ 'iendsWith',
20
+ 'like',
21
+ 'ilike',
22
+ 'regex',
23
+ 'matches',
24
+ ]);
25
+ function compilePattern(pattern) {
26
+ try {
27
+ return new RegExp(pattern);
28
+ }
29
+ catch {
30
+ throw new errors_1.ValidationError(`Invalid regex pattern in fieldConstraints: ${pattern}`, undefined, undefined, ['Fix the pattern field in fieldConstraints']);
31
+ }
32
+ }
33
+ function validateDateScalar(field, value, c) {
34
+ let t;
35
+ if (typeof value === 'number') {
36
+ if (!Number.isFinite(value)) {
37
+ throw new errors_1.ValidationError(`Field '${field}': date value must be a finite number (timestamp)`, field);
38
+ }
39
+ t = value;
40
+ }
41
+ else {
42
+ const parsed = Date.parse(value);
43
+ if (Number.isNaN(parsed)) {
44
+ throw new errors_1.ValidationError(`Field '${field}': value is not a valid date string`, field);
45
+ }
46
+ t = parsed;
47
+ }
48
+ if (c.min !== undefined && t < c.min) {
49
+ throw new errors_1.ValidationError(`Field '${field}': date value is before minimum (${c.min})`, field);
50
+ }
51
+ if (c.max !== undefined && t > c.max) {
52
+ throw new errors_1.ValidationError(`Field '${field}': date value is after maximum (${c.max})`, field);
53
+ }
54
+ }
55
+ function validateScalarAgainstConstraint(field, value, op, c) {
56
+ if (value === null) {
57
+ if (c.allowNull || c.type === 'null') {
58
+ return;
59
+ }
60
+ throw new errors_1.ValidationError(`Field '${field}': null is not allowed for this field`, field, op);
61
+ }
62
+ if (STRING_ONLY_OPS.has(op) && typeof value !== 'string') {
63
+ throw new errors_1.ValidationError(`Field '${field}': operator '${op}' requires a string value`, field, op);
64
+ }
65
+ switch (c.type) {
66
+ case 'string': {
67
+ if (typeof value !== 'string') {
68
+ throw new errors_1.ValidationError(`Field '${field}': expected string, got ${typeof value}`, field, op);
69
+ }
70
+ const len = value.length;
71
+ if (c.min !== undefined && len < c.min) {
72
+ throw new errors_1.ValidationError(`Field '${field}': string length ${len} is below minimum ${c.min}`, field, op);
73
+ }
74
+ if (c.max !== undefined && len > c.max) {
75
+ throw new errors_1.ValidationError(`Field '${field}': string length ${len} exceeds maximum ${c.max}`, field, op);
76
+ }
77
+ if (c.enum && !c.enum.includes(value)) {
78
+ throw new errors_1.ValidationError(`Field '${field}': value must be one of: ${c.enum.join(', ')}`, field, op);
79
+ }
80
+ if (c.pattern) {
81
+ const re = compilePattern(c.pattern);
82
+ if (!re.test(value)) {
83
+ throw new errors_1.ValidationError(`Field '${field}': value does not match required pattern`, field, op);
84
+ }
85
+ }
86
+ break;
87
+ }
88
+ case 'number': {
89
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
90
+ throw new errors_1.ValidationError(`Field '${field}': expected finite number, got ${typeof value}`, field, op);
91
+ }
92
+ if (c.min !== undefined && value < c.min) {
93
+ throw new errors_1.ValidationError(`Field '${field}': value ${value} is below minimum ${c.min}`, field, op);
94
+ }
95
+ if (c.max !== undefined && value > c.max) {
96
+ throw new errors_1.ValidationError(`Field '${field}': value ${value} is above maximum ${c.max}`, field, op);
97
+ }
98
+ break;
99
+ }
100
+ case 'boolean': {
101
+ if (typeof value !== 'boolean') {
102
+ throw new errors_1.ValidationError(`Field '${field}': expected boolean, got ${typeof value}`, field, op);
103
+ }
104
+ break;
105
+ }
106
+ case 'date': {
107
+ if (typeof value !== 'string' && typeof value !== 'number') {
108
+ throw new errors_1.ValidationError(`Field '${field}': expected date string or timestamp number`, field, op);
109
+ }
110
+ validateDateScalar(field, value, c);
111
+ break;
112
+ }
113
+ case 'null': {
114
+ throw new errors_1.ValidationError(`Field '${field}': only null comparisons are allowed for this field`, field, op);
115
+ }
116
+ }
117
+ }
118
+ function validateBetweenAgainstConstraint(node, c) {
119
+ const { field, min, max } = node;
120
+ if (c.type === 'number') {
121
+ if (typeof min !== 'number' || typeof max !== 'number' || !Number.isFinite(min) || !Number.isFinite(max)) {
122
+ throw new errors_1.ValidationError(`Field '${field}': between bounds must be finite numbers`, field);
123
+ }
124
+ if (min > max) {
125
+ throw new errors_1.ValidationError(`Field '${field}': between minimum is greater than maximum`, field);
126
+ }
127
+ if (c.min !== undefined && min < c.min) {
128
+ throw new errors_1.ValidationError(`Field '${field}': lower bound is below minimum ${c.min}`, field);
129
+ }
130
+ if (c.max !== undefined && max > c.max) {
131
+ throw new errors_1.ValidationError(`Field '${field}': upper bound is above maximum ${c.max}`, field);
132
+ }
133
+ return;
134
+ }
135
+ if (c.type === 'string') {
136
+ if (typeof min !== 'string' || typeof max !== 'string') {
137
+ throw new errors_1.ValidationError(`Field '${field}': between bounds must be strings`, field);
138
+ }
139
+ if (min > max) {
140
+ throw new errors_1.ValidationError(`Field '${field}': between minimum is greater than maximum (lexicographic)`, field);
141
+ }
142
+ if (c.enum && (!c.enum.includes(min) || !c.enum.includes(max))) {
143
+ throw new errors_1.ValidationError(`Field '${field}': between bounds must be allowed enum values`, field);
144
+ }
145
+ for (const v of [min, max]) {
146
+ const len = v.length;
147
+ if (c.min !== undefined && len < c.min) {
148
+ throw new errors_1.ValidationError(`Field '${field}': bound string length ${len} is below minimum ${c.min}`, field);
149
+ }
150
+ if (c.max !== undefined && len > c.max) {
151
+ throw new errors_1.ValidationError(`Field '${field}': bound string length ${len} exceeds maximum ${c.max}`, field);
152
+ }
153
+ if (c.pattern) {
154
+ const re = compilePattern(c.pattern);
155
+ if (!re.test(v)) {
156
+ throw new errors_1.ValidationError(`Field '${field}': between bound does not match pattern`, field);
157
+ }
158
+ }
159
+ }
160
+ return;
161
+ }
162
+ if (c.type === 'date') {
163
+ if ((typeof min !== 'string' && typeof min !== 'number') ||
164
+ (typeof max !== 'string' && typeof max !== 'number')) {
165
+ throw new errors_1.ValidationError(`Field '${field}': between bounds must be date strings or timestamps`, field);
166
+ }
167
+ validateDateScalar(field, min, c);
168
+ validateDateScalar(field, max, c);
169
+ const tMin = typeof min === 'number' ? min : Date.parse(min);
170
+ const tMax = typeof max === 'number' ? max : Date.parse(max);
171
+ if (tMin > tMax) {
172
+ throw new errors_1.ValidationError(`Field '${field}': between start is after end`, field);
173
+ }
174
+ return;
175
+ }
176
+ throw new errors_1.ValidationError(`Field '${field}': between is not supported for constraint type '${c.type}'`, field);
177
+ }
178
+ function validateComparisonAgainstConstraints(node, c) {
179
+ const { field, op, value } = node;
180
+ if (op === 'in' || op === 'notIn') {
181
+ if (!Array.isArray(value)) {
182
+ throw new errors_1.ValidationError(`Field '${field}': operator '${op}' requires an array value`, field, op);
183
+ }
184
+ for (const item of value) {
185
+ if (item === null && (c.allowNull || c.type === 'null')) {
186
+ continue;
187
+ }
188
+ validateScalarAgainstConstraint(field, item, op, c);
189
+ }
190
+ return;
191
+ }
192
+ validateScalarAgainstConstraint(field, value, op, c);
193
+ }
194
+ function validateFieldConstraintsNode(node, constraints) {
195
+ if ((0, ast_1.isComparisonNode)(node)) {
196
+ const c = constraints[node.field];
197
+ if (c) {
198
+ validateComparisonAgainstConstraints(node, c);
199
+ }
200
+ return;
201
+ }
202
+ if ((0, ast_1.isBetweenNode)(node)) {
203
+ const c = constraints[node.field];
204
+ if (c) {
205
+ validateBetweenAgainstConstraint(node, c);
206
+ }
207
+ return;
208
+ }
209
+ if ((0, ast_1.isNullCheckNode)(node)) {
210
+ return;
211
+ }
212
+ if ((0, ast_1.isLogicalNode)(node)) {
213
+ validateFieldConstraintsNode(node.left, constraints);
214
+ validateFieldConstraintsNode(node.right, constraints);
215
+ return;
216
+ }
217
+ if ((0, ast_1.isNotNode)(node)) {
218
+ validateFieldConstraintsNode(node.operand, constraints);
219
+ }
220
+ }
221
+ /**
222
+ * Validate comparison and between values against per-field {@link FieldConstraint} rules.
223
+ * Only fields with an entry in `constraints` are checked.
224
+ */
225
+ function validateQueryFieldConstraints(ast, constraints) {
226
+ if (!constraints || Object.keys(constraints).length === 0) {
227
+ return;
228
+ }
229
+ validateFieldConstraintsNode(ast, constraints);
230
+ }
12
231
  /**
13
232
  * Validate an AST against whitelist options
14
233
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/parser/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/parser/validator.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Supported comparison operators
3
3
  */
4
- export type Operator = 'eq' | 'ne' | 'gt' | 'lt' | 'gte' | 'lte' | 'in' | 'notIn' | 'contains' | 'startsWith' | 'endsWith' | 'like' | 'regex' | 'matches';
4
+ export type Operator = 'eq' | 'ne' | 'gt' | 'lt' | 'gte' | 'lte' | 'in' | 'notIn' | 'contains' | 'icontains' | 'startsWith' | 'istartsWith' | 'endsWith' | 'iendsWith' | 'like' | 'ilike' | 'regex' | 'matches';
5
5
  /**
6
6
  * Supported value types in comparisons
7
7
  */
@@ -133,6 +133,41 @@ export interface ParseOptions {
133
133
  * Maximum allowed length of string values
134
134
  */
135
135
  maxStringLength?: number;
136
+ /**
137
+ * Per-field value rules (type, enum, min/max, pattern). Only listed fields are checked.
138
+ */
139
+ fieldConstraints?: Record<string, FieldConstraint>;
140
+ }
141
+ /**
142
+ * Declared value kind for a filterable field (used with {@link FieldConstraint}).
143
+ */
144
+ export type FieldValueKind = 'string' | 'number' | 'boolean' | 'date' | 'null';
145
+ /**
146
+ * Per-field runtime validation beyond whitelist checks.
147
+ * Only fields present in the map are validated; others are unconstrained.
148
+ */
149
+ export interface FieldConstraint {
150
+ type: FieldValueKind;
151
+ /**
152
+ * When true, `eq null` / `ne null` is allowed for this field.
153
+ */
154
+ allowNull?: boolean;
155
+ /**
156
+ * Allowed string values (for string scalars and each element of `in` / `notIn`).
157
+ */
158
+ enum?: readonly string[];
159
+ /**
160
+ * For `number`: inclusive min. For `string`: min UTF-16 code unit length.
161
+ */
162
+ min?: number;
163
+ /**
164
+ * For `number`: inclusive max. For `string`: max UTF-16 code unit length.
165
+ */
166
+ max?: number;
167
+ /**
168
+ * ECMAScript regex pattern (applied only when {@link FieldConstraint.type} is `string`).
169
+ */
170
+ pattern?: string;
136
171
  }
137
172
  /**
138
173
  * Options for query validation
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/types/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/types/ast.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/types/ast.ts"],"names":[],"mappings":";;AA0GA,4CAEC;AAKD,sCAEC;AAKD,8BAEC;AAKD,sCAEC;AAKD,0CAEC;AAjCD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAc;IAC7C,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAc;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAc;IACtC,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAc;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAc;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/types/ast.ts"],"names":[],"mappings":";;AA8GA,4CAEC;AAKD,sCAEC;AAKD,8BAEC;AAKD,sCAEC;AAKD,0CAEC;AAjCD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAc;IAC7C,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAc;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAc;IACtC,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAc;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAc;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "qast",
3
- "version": "2.0.6",
4
- "description": "Query to AST to ORM Parse human-readable query strings into AST and transform them into ORM-compatible filters",
3
+ "version": "2.1.1",
4
+ "description": "Query to AST to ORM - Parse human-readable query strings into AST and transform them into ORM-compatible filters",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -22,8 +22,8 @@
22
22
  "test": "jest",
23
23
  "test:watch": "jest --watch",
24
24
  "test:coverage": "jest --coverage",
25
- "lint": "ESLINT_USE_FLAT_CONFIG=false eslint src --ext .ts --max-warnings 9999",
26
- "lint:fix": "ESLINT_USE_FLAT_CONFIG=false eslint src --ext .ts --fix --max-warnings 9999",
25
+ "lint": "eslint \"src/**/*.ts\" --max-warnings 9999",
26
+ "lint:fix": "eslint \"src/**/*.ts\" --fix --max-warnings 9999",
27
27
  "format": "prettier --write \"src/**/*.ts\"",
28
28
  "format:check": "prettier --check \"src/**/*.ts\"",
29
29
  "prepare": "npm run build",
@@ -82,6 +82,8 @@
82
82
  "@types/jest": "^29.5.0",
83
83
  "@types/node": "^25.5.0",
84
84
  "@typescript-eslint/eslint-plugin": "^8.57.1",
85
+ "@eslint/eslintrc": "^3.2.0",
86
+ "@eslint/js": "^10.0.1",
85
87
  "@typescript-eslint/parser": "^8.57.1",
86
88
  "eslint": "^10.0.2",
87
89
  "eslint-config-prettier": "^10.1.8",
@@ -93,7 +95,7 @@
93
95
  "rxjs": "^7.8.0",
94
96
  "ts-jest": "^29.1.0",
95
97
  "tslib": "^2.8.1",
96
- "typescript": "^5.0.0"
98
+ "typescript": "^6.0.2"
97
99
  },
98
100
  "peerDependencies": {
99
101
  "@prisma/client": "*",