@objectql/core 1.4.0 → 1.6.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAAA,kCAIC;AAJD,SAAgB,WAAW,CAAC,GAAW;IACnC,OAAO,GAAG;SACL,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Validation engine for ObjectQL.
3
+ * Executes validation rules based on metadata configuration.
4
+ */
5
+ import { AnyValidationRule, ValidationContext, ValidationResult, ValidationRuleResult, FieldConfig } from '@objectql/types';
6
+ /**
7
+ * Configuration options for the Validator.
8
+ */
9
+ export interface ValidatorOptions {
10
+ /** Preferred language for validation messages (default: 'en') */
11
+ language?: string;
12
+ /** Fallback languages if preferred language is not available */
13
+ languageFallback?: string[];
14
+ }
15
+ /**
16
+ * Validator class that executes validation rules.
17
+ */
18
+ export declare class Validator {
19
+ private options;
20
+ constructor(options?: ValidatorOptions);
21
+ /**
22
+ * Validate a record against a set of rules.
23
+ */
24
+ validate(rules: AnyValidationRule[], context: ValidationContext): Promise<ValidationResult>;
25
+ /**
26
+ * Validate field-level rules.
27
+ */
28
+ validateField(fieldName: string, fieldConfig: FieldConfig, value: any, context: ValidationContext): Promise<ValidationRuleResult[]>;
29
+ /**
30
+ * Check if a rule should be applied based on triggers and conditions.
31
+ */
32
+ private shouldApplyRule;
33
+ /**
34
+ * Validate cross-field rule.
35
+ */
36
+ private validateCrossField;
37
+ /**
38
+ * Validate state machine transitions.
39
+ */
40
+ private validateStateMachine;
41
+ /**
42
+ * Validate uniqueness (stub - requires database access).
43
+ */
44
+ private validateUniqueness;
45
+ /**
46
+ * Validate business rule (stub - requires complex logic).
47
+ */
48
+ private validateBusinessRule;
49
+ /**
50
+ * Validate custom rule (stub - requires function execution).
51
+ */
52
+ private validateCustom;
53
+ /**
54
+ * Evaluate a validation condition.
55
+ */
56
+ private evaluateCondition;
57
+ /**
58
+ * Compare two values using an operator.
59
+ */
60
+ private compareValues;
61
+ /**
62
+ * Format validation message with template variables.
63
+ */
64
+ private formatMessage;
65
+ /**
66
+ * Get nested value from object by path.
67
+ */
68
+ private getNestedValue;
69
+ }
@@ -0,0 +1,464 @@
1
+ "use strict";
2
+ /**
3
+ * Validation engine for ObjectQL.
4
+ * Executes validation rules based on metadata configuration.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Validator = void 0;
8
+ /**
9
+ * Validator class that executes validation rules.
10
+ */
11
+ class Validator {
12
+ constructor(options = {}) {
13
+ this.options = {
14
+ language: options.language || 'en',
15
+ languageFallback: options.languageFallback || ['en', 'zh-CN'],
16
+ };
17
+ }
18
+ /**
19
+ * Validate a record against a set of rules.
20
+ */
21
+ async validate(rules, context) {
22
+ const results = [];
23
+ for (const rule of rules) {
24
+ // Check if rule should be applied
25
+ if (!this.shouldApplyRule(rule, context)) {
26
+ continue;
27
+ }
28
+ // Execute validation based on rule type
29
+ let result;
30
+ try {
31
+ switch (rule.type) {
32
+ case 'cross_field':
33
+ result = await this.validateCrossField(rule, context);
34
+ break;
35
+ case 'state_machine':
36
+ result = await this.validateStateMachine(rule, context);
37
+ break;
38
+ case 'unique':
39
+ result = await this.validateUniqueness(rule, context);
40
+ break;
41
+ case 'business_rule':
42
+ result = await this.validateBusinessRule(rule, context);
43
+ break;
44
+ case 'custom':
45
+ result = await this.validateCustom(rule, context);
46
+ break;
47
+ default:
48
+ // Generic validation
49
+ result = {
50
+ rule: rule.name,
51
+ valid: true,
52
+ };
53
+ }
54
+ }
55
+ catch (error) {
56
+ result = {
57
+ rule: rule.name,
58
+ valid: false,
59
+ message: error instanceof Error ? error.message : 'Validation error',
60
+ severity: rule.severity || 'error',
61
+ };
62
+ }
63
+ results.push(result);
64
+ }
65
+ // Categorize results
66
+ const errors = results.filter(r => !r.valid && r.severity === 'error');
67
+ const warnings = results.filter(r => !r.valid && r.severity === 'warning');
68
+ const info = results.filter(r => !r.valid && r.severity === 'info');
69
+ return {
70
+ valid: errors.length === 0,
71
+ results,
72
+ errors,
73
+ warnings,
74
+ info,
75
+ };
76
+ }
77
+ /**
78
+ * Validate field-level rules.
79
+ */
80
+ async validateField(fieldName, fieldConfig, value, context) {
81
+ var _a, _b;
82
+ const results = [];
83
+ // Required field validation
84
+ if (fieldConfig.required && (value === null || value === undefined || value === '')) {
85
+ results.push({
86
+ rule: `${fieldName}_required`,
87
+ valid: false,
88
+ message: ((_a = fieldConfig.validation) === null || _a === void 0 ? void 0 : _a.message) || `${fieldConfig.label || fieldName} is required`,
89
+ severity: 'error',
90
+ fields: [fieldName],
91
+ });
92
+ }
93
+ // Skip further validation if value is empty and not required
94
+ if (value === null || value === undefined || value === '') {
95
+ return results;
96
+ }
97
+ // Type-specific validation
98
+ if (fieldConfig.validation) {
99
+ const validation = fieldConfig.validation;
100
+ // Email format
101
+ if (validation.format === 'email') {
102
+ // NOTE: This is a basic email validation regex. For production use,
103
+ // consider using a more comprehensive email validation library or regex
104
+ // that handles international domains, quoted strings, etc.
105
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
106
+ if (!emailRegex.test(value)) {
107
+ results.push({
108
+ rule: `${fieldName}_email_format`,
109
+ valid: false,
110
+ message: validation.message || 'Invalid email format',
111
+ severity: 'error',
112
+ fields: [fieldName],
113
+ });
114
+ }
115
+ }
116
+ // URL format
117
+ if (validation.format === 'url') {
118
+ try {
119
+ const url = new URL(value);
120
+ if (validation.protocols && !validation.protocols.includes(url.protocol.replace(':', ''))) {
121
+ results.push({
122
+ rule: `${fieldName}_url_protocol`,
123
+ valid: false,
124
+ message: validation.message || `URL must use one of: ${validation.protocols.join(', ')}`,
125
+ severity: 'error',
126
+ fields: [fieldName],
127
+ });
128
+ }
129
+ }
130
+ catch {
131
+ results.push({
132
+ rule: `${fieldName}_url_format`,
133
+ valid: false,
134
+ message: validation.message || 'Invalid URL format',
135
+ severity: 'error',
136
+ fields: [fieldName],
137
+ });
138
+ }
139
+ }
140
+ // Pattern validation (supports both pattern and deprecated regex)
141
+ const patternValue = (_b = validation.pattern) !== null && _b !== void 0 ? _b : validation.regex;
142
+ if (patternValue) {
143
+ try {
144
+ const pattern = new RegExp(patternValue);
145
+ if (!pattern.test(String(value))) {
146
+ results.push({
147
+ rule: `${fieldName}_pattern`,
148
+ valid: false,
149
+ message: validation.message || 'Value does not match required pattern',
150
+ severity: 'error',
151
+ fields: [fieldName],
152
+ });
153
+ }
154
+ }
155
+ catch (error) {
156
+ results.push({
157
+ rule: `${fieldName}_pattern`,
158
+ valid: false,
159
+ message: `Invalid regex pattern: ${patternValue}`,
160
+ severity: 'error',
161
+ fields: [fieldName],
162
+ });
163
+ }
164
+ }
165
+ // Min/Max validation
166
+ if (validation.min !== undefined && value < validation.min) {
167
+ results.push({
168
+ rule: `${fieldName}_min`,
169
+ valid: false,
170
+ message: validation.message || `Value must be at least ${validation.min}`,
171
+ severity: 'error',
172
+ fields: [fieldName],
173
+ });
174
+ }
175
+ if (validation.max !== undefined && value > validation.max) {
176
+ results.push({
177
+ rule: `${fieldName}_max`,
178
+ valid: false,
179
+ message: validation.message || `Value must be at most ${validation.max}`,
180
+ severity: 'error',
181
+ fields: [fieldName],
182
+ });
183
+ }
184
+ // Length validation
185
+ const strValue = String(value);
186
+ if (validation.min_length !== undefined && strValue.length < validation.min_length) {
187
+ results.push({
188
+ rule: `${fieldName}_min_length`,
189
+ valid: false,
190
+ message: validation.message || `Must be at least ${validation.min_length} characters`,
191
+ severity: 'error',
192
+ fields: [fieldName],
193
+ });
194
+ }
195
+ if (validation.max_length !== undefined && strValue.length > validation.max_length) {
196
+ results.push({
197
+ rule: `${fieldName}_max_length`,
198
+ valid: false,
199
+ message: validation.message || `Must be at most ${validation.max_length} characters`,
200
+ severity: 'error',
201
+ fields: [fieldName],
202
+ });
203
+ }
204
+ }
205
+ // Legacy min/max from fieldConfig
206
+ if (fieldConfig.min !== undefined && value < fieldConfig.min) {
207
+ results.push({
208
+ rule: `${fieldName}_min`,
209
+ valid: false,
210
+ message: `Value must be at least ${fieldConfig.min}`,
211
+ severity: 'error',
212
+ fields: [fieldName],
213
+ });
214
+ }
215
+ if (fieldConfig.max !== undefined && value > fieldConfig.max) {
216
+ results.push({
217
+ rule: `${fieldName}_max`,
218
+ valid: false,
219
+ message: `Value must be at most ${fieldConfig.max}`,
220
+ severity: 'error',
221
+ fields: [fieldName],
222
+ });
223
+ }
224
+ return results;
225
+ }
226
+ /**
227
+ * Check if a rule should be applied based on triggers and conditions.
228
+ */
229
+ shouldApplyRule(rule, context) {
230
+ // Check trigger
231
+ if (rule.trigger && !rule.trigger.includes(context.operation)) {
232
+ return false;
233
+ }
234
+ // Check fields (for updates)
235
+ if (rule.fields && rule.fields.length > 0 && context.changedFields) {
236
+ const hasChangedField = rule.fields.some(f => context.changedFields.includes(f));
237
+ if (!hasChangedField) {
238
+ return false;
239
+ }
240
+ }
241
+ // Check apply_when condition
242
+ if (rule.apply_when) {
243
+ return this.evaluateCondition(rule.apply_when, context.record);
244
+ }
245
+ return true;
246
+ }
247
+ /**
248
+ * Validate cross-field rule.
249
+ */
250
+ async validateCrossField(rule, context) {
251
+ if (!rule.rule) {
252
+ return { rule: rule.name, valid: true };
253
+ }
254
+ const valid = this.evaluateCondition(rule.rule, context.record);
255
+ return {
256
+ rule: rule.name,
257
+ valid,
258
+ message: valid ? undefined : this.formatMessage(rule.message, context.record),
259
+ error_code: rule.error_code,
260
+ severity: rule.severity || 'error',
261
+ };
262
+ }
263
+ /**
264
+ * Validate state machine transitions.
265
+ */
266
+ async validateStateMachine(rule, context) {
267
+ var _a;
268
+ // Only validate on update
269
+ if (context.operation !== 'update' || !context.previousRecord) {
270
+ return { rule: rule.name, valid: true };
271
+ }
272
+ const oldState = context.previousRecord[rule.field];
273
+ const newState = context.record[rule.field];
274
+ // If state hasn't changed, validation passes
275
+ if (oldState === newState) {
276
+ return { rule: rule.name, valid: true };
277
+ }
278
+ // Check if transition is allowed
279
+ const transitions = (_a = rule.transitions) === null || _a === void 0 ? void 0 : _a[oldState];
280
+ if (!transitions) {
281
+ return {
282
+ rule: rule.name,
283
+ valid: false,
284
+ message: this.formatMessage(rule.message, { old_status: oldState, new_status: newState }),
285
+ error_code: rule.error_code,
286
+ severity: rule.severity || 'error',
287
+ fields: [rule.field],
288
+ };
289
+ }
290
+ // Handle both array and object format
291
+ let allowedNext = [];
292
+ if (Array.isArray(transitions)) {
293
+ allowedNext = transitions;
294
+ }
295
+ else if (typeof transitions === 'object' && 'allowed_next' in transitions) {
296
+ allowedNext = transitions.allowed_next || [];
297
+ }
298
+ const isAllowed = allowedNext.includes(newState);
299
+ return {
300
+ rule: rule.name,
301
+ valid: isAllowed,
302
+ message: isAllowed ? undefined : this.formatMessage(rule.message, { old_status: oldState, new_status: newState }),
303
+ error_code: rule.error_code,
304
+ severity: rule.severity || 'error',
305
+ fields: [rule.field],
306
+ };
307
+ }
308
+ /**
309
+ * Validate uniqueness (stub - requires database access).
310
+ */
311
+ async validateUniqueness(rule, context) {
312
+ // TODO: Implement database query for uniqueness check
313
+ // This requires access to the data layer (driver/repository)
314
+ // Stub: Pass silently until implementation is complete
315
+ return {
316
+ rule: rule.name,
317
+ valid: true,
318
+ };
319
+ }
320
+ /**
321
+ * Validate business rule (stub - requires complex logic).
322
+ */
323
+ async validateBusinessRule(rule, context) {
324
+ // TODO: Implement business rule evaluation
325
+ // This requires expression parsing and relationship resolution
326
+ // Stub: Pass silently until implementation is complete
327
+ return {
328
+ rule: rule.name,
329
+ valid: true,
330
+ };
331
+ }
332
+ /**
333
+ * Validate custom rule (stub - requires function execution).
334
+ */
335
+ async validateCustom(rule, context) {
336
+ // TODO: Implement custom validator execution
337
+ // This requires safe function evaluation
338
+ // Stub: Pass silently until implementation is complete
339
+ return {
340
+ rule: rule.name,
341
+ valid: true,
342
+ };
343
+ }
344
+ /**
345
+ * Evaluate a validation condition.
346
+ */
347
+ evaluateCondition(condition, record) {
348
+ // Handle logical operators
349
+ if (condition.all_of) {
350
+ return condition.all_of.every(c => this.evaluateCondition(c, record));
351
+ }
352
+ if (condition.any_of) {
353
+ return condition.any_of.some(c => this.evaluateCondition(c, record));
354
+ }
355
+ // Handle expression
356
+ if (condition.expression) {
357
+ // TODO: Implement safe expression evaluation
358
+ return true;
359
+ }
360
+ // Handle field comparison
361
+ if (condition.field && condition.operator !== undefined) {
362
+ const fieldValue = record[condition.field];
363
+ // Use compare_to if specified (cross-field comparison), otherwise use value
364
+ const compareValue = condition.compare_to !== undefined
365
+ ? record[condition.compare_to]
366
+ : condition.value;
367
+ return this.compareValues(fieldValue, condition.operator, compareValue);
368
+ }
369
+ return true;
370
+ }
371
+ /**
372
+ * Compare two values using an operator.
373
+ */
374
+ compareValues(a, operator, b) {
375
+ switch (operator) {
376
+ case '=':
377
+ return a === b;
378
+ case '!=':
379
+ return a !== b;
380
+ case '>':
381
+ return a > b;
382
+ case '>=':
383
+ return a >= b;
384
+ case '<':
385
+ return a < b;
386
+ case '<=':
387
+ return a <= b;
388
+ case 'in':
389
+ return Array.isArray(b) && b.includes(a);
390
+ case 'not_in':
391
+ return Array.isArray(b) && !b.includes(a);
392
+ case 'contains': {
393
+ if (a == null || b == null) {
394
+ return false;
395
+ }
396
+ const strA = String(a);
397
+ const strB = String(b);
398
+ return strA.includes(strB);
399
+ }
400
+ case 'not_contains': {
401
+ if (a == null || b == null) {
402
+ return false;
403
+ }
404
+ const strA = String(a);
405
+ const strB = String(b);
406
+ return !strA.includes(strB);
407
+ }
408
+ case 'starts_with': {
409
+ if (a == null || b == null) {
410
+ return false;
411
+ }
412
+ const strA = String(a);
413
+ const strB = String(b);
414
+ return strA.startsWith(strB);
415
+ }
416
+ case 'ends_with': {
417
+ if (a == null || b == null) {
418
+ return false;
419
+ }
420
+ const strA = String(a);
421
+ const strB = String(b);
422
+ return strA.endsWith(strB);
423
+ }
424
+ default:
425
+ return false;
426
+ }
427
+ }
428
+ /**
429
+ * Format validation message with template variables.
430
+ */
431
+ formatMessage(message, context) {
432
+ var _a;
433
+ // Handle i18n messages
434
+ if (typeof message === 'object') {
435
+ // Try preferred language first
436
+ const preferredLanguage = (_a = this.options.language) !== null && _a !== void 0 ? _a : 'en';
437
+ let messageText = message[preferredLanguage];
438
+ // Try fallback languages if preferred not available
439
+ if (!messageText && this.options.languageFallback) {
440
+ for (const lang of this.options.languageFallback) {
441
+ if (message[lang]) {
442
+ messageText = message[lang];
443
+ break;
444
+ }
445
+ }
446
+ }
447
+ // Fallback to first available message
448
+ message = messageText || Object.values(message)[0];
449
+ }
450
+ // Replace template variables
451
+ return message.replace(/\{\{(\w+(?:\.\w+)*)\}\}/g, (match, path) => {
452
+ const value = this.getNestedValue(context, path);
453
+ return value !== undefined ? String(value) : match;
454
+ });
455
+ }
456
+ /**
457
+ * Get nested value from object by path.
458
+ */
459
+ getNestedValue(obj, path) {
460
+ return path.split('.').reduce((current, key) => current === null || current === void 0 ? void 0 : current[key], obj);
461
+ }
462
+ }
463
+ exports.Validator = Validator;
464
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,10 @@
1
1
  {
2
2
  "name": "@objectql/core",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
7
- "fast-glob": "^3.3.2",
8
- "js-yaml": "^4.1.1",
9
- "@objectql/types": "1.4.0",
10
- "@objectql/driver-remote": "1.4.0"
7
+ "@objectql/types": "1.6.0"
11
8
  },
12
9
  "devDependencies": {
13
10
  "typescript": "^5.3.0"