@zola_do/collection-query 0.1.40 → 0.2.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.
@@ -1,8 +1,19 @@
1
- import { ObjectLiteral, Repository, SelectQueryBuilder } from 'typeorm';
1
+ import { ObjectLiteral, Repository, SelectQueryBuilder, DataSource } from 'typeorm';
2
2
  import { CollectionQuery } from './query';
3
+ export interface MultiEntityFuzzySearchConfig {
4
+ repository: Repository<any>;
5
+ sourceName: string;
6
+ searchColumns: string[];
7
+ selectColumns?: string[];
8
+ idColumn?: string;
9
+ }
3
10
  export declare const buildQuery: <T>(aggregate: string, queryBuilder: SelectQueryBuilder<T>, query: CollectionQuery) => void;
4
11
  export declare class QueryConstructor {
5
12
  static constructQuery<T extends ObjectLiteral>(repository: Repository<T>, query: CollectionQuery, withDelete?: boolean): SelectQueryBuilder<T>;
6
13
  static removeEmptyFilter(query: CollectionQuery): CollectionQuery;
7
14
  static removeFilter(query: CollectionQuery, key: string): CollectionQuery;
15
+ static constructMultiEntityFuzzySearch(dataSource: DataSource, query: CollectionQuery, entityConfigs: MultiEntityFuzzySearchConfig[]): Promise<{
16
+ items: any[];
17
+ total: number;
18
+ }>;
8
19
  }
@@ -185,7 +185,7 @@ const applyWhereConditions = (aggregate, queryBuilder, whereConditions) => {
185
185
  acc = addFilterParams(op, value, columnValue, acc);
186
186
  }
187
187
  else if (column.includes('@>')) {
188
- const [mainColumn, nestedColumn] = field.split('@>');
188
+ const [, nestedColumn] = field.split('@>');
189
189
  const columnValue = `${nestedColumn}_${++paramIndex}`;
190
190
  acc = addFilterParams(op, value, columnValue, acc, true, nestedColumn);
191
191
  }
@@ -220,6 +220,54 @@ const applyWhereConditions = (aggregate, queryBuilder, whereConditions) => {
220
220
  queryBuilder.expressionMap.wheres.filter((f) => f.condition && f.condition !== '()');
221
221
  }
222
222
  };
223
+ const applyFuzzySearch = (aggregate, queryBuilder, fuzzySearch) => {
224
+ let hasJoinedTableSearch = false;
225
+ fuzzySearch.forEach((search, searchIndex) => {
226
+ const similarityFilter = [];
227
+ const paramName = `fuzzySearchValue_${searchIndex}`;
228
+ let highestSimilarityColumn = null;
229
+ search.columns.map((column) => {
230
+ if (column.includes('.')) {
231
+ hasJoinedTableSearch = true;
232
+ const [relation, field] = column.split('.');
233
+ if (field.includes('->>')) {
234
+ const [mainColumn, nestedColumn] = field.split('->>');
235
+ const similarityExpr = `similarity("${relation}"."${mainColumn}" ->> '${nestedColumn}', :${paramName})`;
236
+ similarityFilter.push(`${similarityExpr} > 0`);
237
+ queryBuilder.addSelect(similarityExpr, `similarity_${relation}_${mainColumn}_${nestedColumn}`);
238
+ if (!highestSimilarityColumn) {
239
+ highestSimilarityColumn = similarityExpr;
240
+ }
241
+ }
242
+ else {
243
+ const similarityExpr = `similarity("${relation}"."${field}", :${paramName})`;
244
+ similarityFilter.push(`${similarityExpr} > 0`);
245
+ queryBuilder.addSelect(similarityExpr, `similarity_${relation}_${field}`);
246
+ if (!highestSimilarityColumn) {
247
+ highestSimilarityColumn = similarityExpr;
248
+ }
249
+ }
250
+ }
251
+ else {
252
+ const similarityExpr = `similarity(${aggregate}."${column}", :${paramName})`;
253
+ similarityFilter.push(`${similarityExpr} > 0`);
254
+ queryBuilder.addSelect(similarityExpr, `similarity_${aggregate}_${column}`);
255
+ if (!highestSimilarityColumn) {
256
+ highestSimilarityColumn = similarityExpr;
257
+ }
258
+ }
259
+ });
260
+ if (similarityFilter.length > 0) {
261
+ queryBuilder.andWhere(`(${similarityFilter.join(' OR ')})`, {
262
+ [paramName]: search.value,
263
+ });
264
+ if (highestSimilarityColumn) {
265
+ queryBuilder.orderBy(highestSimilarityColumn, 'DESC');
266
+ }
267
+ }
268
+ });
269
+ return hasJoinedTableSearch;
270
+ };
223
271
  const applyOrderBy = (aggregate, queryBuilder, orderBy) => {
224
272
  orderBy.forEach(({ column, direction = 'ASC', nulls }) => {
225
273
  if (column.includes('.')) {
@@ -315,14 +363,11 @@ const buildQuery = (aggregate, queryBuilder, query) => {
315
363
  if (query.where && query.where.length > 0) {
316
364
  applyWhereConditions(aggregate, queryBuilder, query.where);
317
365
  }
318
- if (query.take) {
319
- queryBuilder.take(query.take);
366
+ let hasJoinedTableFuzzySearch = false;
367
+ if (query.fuzzySearch && query.fuzzySearch.length > 0) {
368
+ hasJoinedTableFuzzySearch = applyFuzzySearch(aggregate, queryBuilder, query.fuzzySearch);
320
369
  }
321
- if (query.skip) {
322
- queryBuilder.skip(query.skip);
323
- }
324
- if (query.orderBy && query.orderBy.length > 0) {
325
- applyOrderBy(aggregate, queryBuilder, query.orderBy);
370
+ if (query.search && query.search.length > 0) {
326
371
  }
327
372
  if (query.leftJoinAndMapOne && query.leftJoinAndMapOne.length > 0) {
328
373
  applyLeftJoinAndMapOnes(aggregate, queryBuilder, query.leftJoinAndMapOne);
@@ -333,12 +378,24 @@ const buildQuery = (aggregate, queryBuilder, query) => {
333
378
  if (query.includeAndSelect && query.includeAndSelect.length > 0) {
334
379
  applyIncludeAndSelect(aggregate, queryBuilder, query.includeAndSelect);
335
380
  }
381
+ if (hasJoinedTableFuzzySearch) {
382
+ queryBuilder.distinct(true);
383
+ }
336
384
  if (query.groupBy && query.groupBy.length > 0) {
337
385
  applyGroupBy(aggregate, queryBuilder, query.groupBy);
338
386
  }
339
387
  if (query.having && query.having.length > 0) {
340
388
  applyHaving(aggregate, queryBuilder, query.having);
341
389
  }
390
+ if (query.take) {
391
+ queryBuilder.take(query.take);
392
+ }
393
+ if (query.skip) {
394
+ queryBuilder.skip(query.skip);
395
+ }
396
+ if (query.orderBy && query.orderBy.length > 0) {
397
+ applyOrderBy(aggregate, queryBuilder, query.orderBy);
398
+ }
342
399
  };
343
400
  exports.buildQuery = buildQuery;
344
401
  class QueryConstructor {
@@ -373,6 +430,276 @@ class QueryConstructor {
373
430
  });
374
431
  return query;
375
432
  }
433
+ static async constructMultiEntityFuzzySearch(dataSource, query, entityConfigs) {
434
+ if (!query.fuzzySearch ||
435
+ query.fuzzySearch.length === 0 ||
436
+ entityConfigs.length === 0) {
437
+ return { items: [], total: 0 };
438
+ }
439
+ const searchValue = query.fuzzySearch[0].value;
440
+ const params = [searchValue];
441
+ const unionQueries = [];
442
+ const entityMetadata = [];
443
+ const allSelectColumns = new Set();
444
+ entityConfigs.forEach((config) => {
445
+ var _a;
446
+ const metaData = dataSource.getMetadata(config.repository.target);
447
+ const tableName = metaData.tableName;
448
+ const primaryKey = config.idColumn || ((_a = metaData.primaryColumns[0]) === null || _a === void 0 ? void 0 : _a.propertyName) || 'id';
449
+ const nameColumn = config.searchColumns[0];
450
+ entityMetadata.push({
451
+ config,
452
+ metaData,
453
+ tableName,
454
+ primaryKey,
455
+ nameColumn,
456
+ });
457
+ if (config.selectColumns) {
458
+ config.selectColumns.forEach((col) => allSelectColumns.add(col));
459
+ }
460
+ });
461
+ entityMetadata.forEach(({ config, metaData, tableName, primaryKey, nameColumn }) => {
462
+ const similarityConditions = [];
463
+ const maxSimilarityExpressions = [];
464
+ config.searchColumns.forEach((column) => {
465
+ const similarityExpr = `similarity("${tableName}"."${column}", $1)`;
466
+ similarityConditions.push(`${similarityExpr} > 0.1`);
467
+ maxSimilarityExpressions.push(similarityExpr);
468
+ });
469
+ const scoreExpr = maxSimilarityExpressions.length > 0.1
470
+ ? `GREATEST(${maxSimilarityExpressions.join(', ')})`
471
+ : '0';
472
+ const selectClauses = [];
473
+ if (metaData.propertiesMap[primaryKey]) {
474
+ selectClauses.push(`"${tableName}"."${primaryKey}" AS "id"`);
475
+ }
476
+ else {
477
+ selectClauses.push(`NULL AS "id"`);
478
+ }
479
+ if (metaData.propertiesMap[nameColumn]) {
480
+ selectClauses.push(`"${tableName}"."${nameColumn}" AS "name"`);
481
+ }
482
+ else {
483
+ selectClauses.push(`NULL AS "name"`);
484
+ }
485
+ selectClauses.push(`'${config.sourceName}' AS "source"`);
486
+ selectClauses.push(`${scoreExpr} AS "score"`);
487
+ Array.from(allSelectColumns)
488
+ .sort()
489
+ .forEach((col) => {
490
+ if (col !== primaryKey && col !== nameColumn) {
491
+ if (metaData.propertiesMap[col]) {
492
+ selectClauses.push(`"${tableName}"."${col}" AS "${col}"`);
493
+ }
494
+ else {
495
+ selectClauses.push(`NULL AS "${col}"`);
496
+ }
497
+ }
498
+ });
499
+ const whereConditions = [`(${similarityConditions.join(' OR ')})`];
500
+ if (metaData.propertiesMap['deletedAt']) {
501
+ whereConditions.push(`"${tableName}"."deletedAt" IS NULL`);
502
+ }
503
+ if (query.where.length > 0) {
504
+ for (const element of query.where) {
505
+ const conditions = element.map((x) => {
506
+ const columnRef = `"${tableName}"."${x.column}"`;
507
+ const paramIndex = params.length + 1;
508
+ const op = x.operator || filter_operators_1.FilterOperators.EqualTo;
509
+ if (op === filter_operators_1.FilterOperators.Between &&
510
+ Array.isArray(x.value) &&
511
+ x.value.length === 2) {
512
+ params.push(x.value[0], x.value[1]);
513
+ return `${columnRef} BETWEEN $${paramIndex} AND $${paramIndex + 1}`;
514
+ }
515
+ else if (op === filter_operators_1.FilterOperators.In && Array.isArray(x.value)) {
516
+ const placeholders = [];
517
+ x.value.forEach((v) => {
518
+ const idx = params.length + 1;
519
+ placeholders.push(`$${idx}`);
520
+ params.push(v);
521
+ });
522
+ return `${columnRef} IN (${placeholders.join(', ')})`;
523
+ }
524
+ else if (op === filter_operators_1.FilterOperators.NotIn &&
525
+ Array.isArray(x.value)) {
526
+ const placeholders = [];
527
+ x.value.forEach((v) => {
528
+ const idx = params.length + 1;
529
+ placeholders.push(`$${idx}`);
530
+ params.push(v);
531
+ });
532
+ return `${columnRef} NOT IN (${placeholders.join(', ')})`;
533
+ }
534
+ else if (op === filter_operators_1.FilterOperators.IsNull) {
535
+ return `${columnRef} IS NULL`;
536
+ }
537
+ else if (op === filter_operators_1.FilterOperators.IsNotNull) {
538
+ return `${columnRef} IS NOT NULL`;
539
+ }
540
+ else if (op === filter_operators_1.FilterOperators.EqualTo) {
541
+ params.push(x.value);
542
+ return `${columnRef} = $${paramIndex}`;
543
+ }
544
+ else if (op === filter_operators_1.FilterOperators.GreaterThan) {
545
+ params.push(x.value);
546
+ return `${columnRef} > $${paramIndex}`;
547
+ }
548
+ else if (op === filter_operators_1.FilterOperators.LessThan) {
549
+ params.push(x.value);
550
+ return `${columnRef} < $${paramIndex}`;
551
+ }
552
+ else if (op === filter_operators_1.FilterOperators.LessThanOrEqualTo) {
553
+ params.push(x.value);
554
+ return `${columnRef} <= $${paramIndex}`;
555
+ }
556
+ else if (op === filter_operators_1.FilterOperators.GreaterThanOrEqualTo) {
557
+ params.push(x.value);
558
+ return `${columnRef} >= $${paramIndex}`;
559
+ }
560
+ else if (op === filter_operators_1.FilterOperators.NotEqualTo ||
561
+ op === filter_operators_1.FilterOperators.NotEqual) {
562
+ params.push(x.value);
563
+ return `${columnRef} != $${paramIndex}`;
564
+ }
565
+ else if (op === filter_operators_1.FilterOperators.Like) {
566
+ params.push(`%${x.value}%`);
567
+ return `${columnRef} LIKE $${paramIndex}`;
568
+ }
569
+ else if (op === filter_operators_1.FilterOperators.ILike) {
570
+ params.push(`%${x.value}%`);
571
+ return `${columnRef} ILIKE $${paramIndex}`;
572
+ }
573
+ else {
574
+ params.push(x.value);
575
+ return `${columnRef} = $${paramIndex}`;
576
+ }
577
+ });
578
+ whereConditions.push(`(${conditions.join(' AND ')})`);
579
+ }
580
+ }
581
+ const sqlQuery = `
582
+ SELECT
583
+ ${selectClauses.join(',\n ')}
584
+ FROM "${tableName}" "${tableName}"
585
+ WHERE ${whereConditions.join(' AND ')}
586
+ `;
587
+ unionQueries.push(sqlQuery);
588
+ });
589
+ const unionQuery = unionQueries.join('\nUNION ALL\n');
590
+ let finalQuery = `(${unionQuery}) AS union_results`;
591
+ finalQuery += `\nORDER BY "score" DESC`;
592
+ if (query.take !== undefined) {
593
+ finalQuery += `\nLIMIT ${query.take}`;
594
+ }
595
+ if (query.skip !== undefined) {
596
+ finalQuery += `\nOFFSET ${query.skip}`;
597
+ }
598
+ const rawResults = await dataSource.query(`SELECT * FROM ${finalQuery}`, params);
599
+ const countQueries = [];
600
+ for (const config of entityConfigs) {
601
+ const metaData = dataSource.getMetadata(config.repository.target);
602
+ const tableName = metaData.tableName;
603
+ const countParams = [searchValue];
604
+ const similarityConditions = config.searchColumns.map((column) => `similarity("${tableName}"."${column}", $1) > 0.1`);
605
+ let countQuery = `
606
+ SELECT COUNT(*) as count
607
+ FROM "${tableName}" "${tableName}"
608
+ WHERE (${similarityConditions.join(' OR ')})
609
+ `;
610
+ if (metaData.propertiesMap['deletedAt']) {
611
+ countQuery += ` AND "${tableName}"."deletedAt" IS NULL`;
612
+ }
613
+ if (query.where.length > 0) {
614
+ for (const element of query.where) {
615
+ const conditions = element.map((x) => {
616
+ const columnRef = `"${tableName}"."${x.column}"`;
617
+ const paramIndex = countParams.length + 1;
618
+ const op = x.operator || filter_operators_1.FilterOperators.EqualTo;
619
+ if (op === filter_operators_1.FilterOperators.Between &&
620
+ Array.isArray(x.value) &&
621
+ x.value.length === 2) {
622
+ countParams.push(x.value[0], x.value[1]);
623
+ return `${columnRef} BETWEEN $${paramIndex} AND $${paramIndex + 1}`;
624
+ }
625
+ else if (op === filter_operators_1.FilterOperators.In && Array.isArray(x.value)) {
626
+ const placeholders = [];
627
+ x.value.forEach((v) => {
628
+ const idx = countParams.length + 1;
629
+ placeholders.push(`$${idx}`);
630
+ countParams.push(v);
631
+ });
632
+ return `${columnRef} IN (${placeholders.join(', ')})`;
633
+ }
634
+ else if (op === filter_operators_1.FilterOperators.NotIn && Array.isArray(x.value)) {
635
+ const placeholders = [];
636
+ x.value.forEach((v) => {
637
+ const idx = countParams.length + 1;
638
+ placeholders.push(`$${idx}`);
639
+ countParams.push(v);
640
+ });
641
+ return `${columnRef} NOT IN (${placeholders.join(', ')})`;
642
+ }
643
+ else if (op === filter_operators_1.FilterOperators.IsNull) {
644
+ return `${columnRef} IS NULL`;
645
+ }
646
+ else if (op === filter_operators_1.FilterOperators.IsNotNull) {
647
+ return `${columnRef} IS NOT NULL`;
648
+ }
649
+ else if (op === filter_operators_1.FilterOperators.EqualTo) {
650
+ countParams.push(x.value);
651
+ return `${columnRef} = $${paramIndex}`;
652
+ }
653
+ else if (op === filter_operators_1.FilterOperators.GreaterThan) {
654
+ countParams.push(x.value);
655
+ return `${columnRef} > $${paramIndex}`;
656
+ }
657
+ else if (op === filter_operators_1.FilterOperators.LessThan) {
658
+ countParams.push(x.value);
659
+ return `${columnRef} < $${paramIndex}`;
660
+ }
661
+ else if (op === filter_operators_1.FilterOperators.LessThanOrEqualTo) {
662
+ countParams.push(x.value);
663
+ return `${columnRef} <= $${paramIndex}`;
664
+ }
665
+ else if (op === filter_operators_1.FilterOperators.GreaterThanOrEqualTo) {
666
+ countParams.push(x.value);
667
+ return `${columnRef} >= $${paramIndex}`;
668
+ }
669
+ else if (op === filter_operators_1.FilterOperators.NotEqualTo ||
670
+ op === filter_operators_1.FilterOperators.NotEqual) {
671
+ countParams.push(x.value);
672
+ return `${columnRef} != $${paramIndex}`;
673
+ }
674
+ else if (op === filter_operators_1.FilterOperators.Like) {
675
+ countParams.push(`%${x.value}%`);
676
+ return `${columnRef} LIKE $${paramIndex}`;
677
+ }
678
+ else if (op === filter_operators_1.FilterOperators.ILike) {
679
+ countParams.push(`%${x.value}%`);
680
+ return `${columnRef} ILIKE $${paramIndex}`;
681
+ }
682
+ else {
683
+ countParams.push(x.value);
684
+ return `${columnRef} = $${paramIndex}`;
685
+ }
686
+ });
687
+ countQuery += ` AND (${conditions.join(' AND ')})`;
688
+ }
689
+ }
690
+ countQueries.push([countQuery, countParams]);
691
+ }
692
+ const countResults = [];
693
+ for (const [countQuery, countParams] of countQueries) {
694
+ const result = await dataSource.query(countQuery, countParams);
695
+ countResults.push(result);
696
+ }
697
+ const total = countResults.reduce((sum, result) => { var _a; return sum + parseInt(((_a = result[0]) === null || _a === void 0 ? void 0 : _a.count) || '0', 10); }, 0);
698
+ return {
699
+ items: rawResults,
700
+ total,
701
+ };
702
+ }
376
703
  }
377
704
  exports.QueryConstructor = QueryConstructor;
378
705
  //# sourceMappingURL=query-constructor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-constructor.js","sourceRoot":"","sources":["../src/query-constructor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-constructor.js","sourceRoot":"","sources":["../src/query-constructor.ts"],"names":[],"mappings":"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"}
package/dist/query.d.ts CHANGED
@@ -10,6 +10,12 @@ export declare class CollectionQuery {
10
10
  groupBy?: string[];
11
11
  having?: Where[][];
12
12
  count?: boolean;
13
+ fuzzySearch?: Search[];
14
+ search?: Search[];
15
+ }
16
+ export declare class Search {
17
+ columns: string[];
18
+ value: string;
13
19
  }
14
20
  export declare class Order {
15
21
  column: string;
package/dist/query.js CHANGED
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.IncludeSelect = exports.Where = exports.Order = exports.CollectionQuery = void 0;
12
+ exports.IncludeSelect = exports.Where = exports.Order = exports.Search = exports.CollectionQuery = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
14
  const filter_operators_1 = require("./filter_operators");
15
15
  const swagger_1 = require("@nestjs/swagger");
@@ -24,6 +24,8 @@ class CollectionQuery {
24
24
  this.leftJoinAndMapOne = [];
25
25
  this.groupBy = [];
26
26
  this.having = [];
27
+ this.fuzzySearch = [];
28
+ this.search = [];
27
29
  }
28
30
  }
29
31
  exports.CollectionQuery = CollectionQuery;
@@ -100,6 +102,37 @@ __decorate([
100
102
  (0, class_validator_1.IsBoolean)(),
101
103
  __metadata("design:type", Boolean)
102
104
  ], CollectionQuery.prototype, "count", void 0);
105
+ __decorate([
106
+ (0, swagger_1.ApiProperty)(),
107
+ (0, swagger_1.ApiPropertyOptional)(),
108
+ (0, class_validator_1.IsOptional)(),
109
+ (0, class_validator_1.IsArray)(),
110
+ __metadata("design:type", Array)
111
+ ], CollectionQuery.prototype, "fuzzySearch", void 0);
112
+ __decorate([
113
+ (0, swagger_1.ApiProperty)(),
114
+ (0, swagger_1.ApiPropertyOptional)(),
115
+ (0, class_validator_1.IsOptional)(),
116
+ (0, class_validator_1.IsArray)(),
117
+ __metadata("design:type", Array)
118
+ ], CollectionQuery.prototype, "search", void 0);
119
+ class Search {
120
+ constructor() {
121
+ this.columns = [];
122
+ }
123
+ }
124
+ exports.Search = Search;
125
+ __decorate([
126
+ (0, swagger_1.ApiProperty)(),
127
+ (0, class_validator_1.IsArray)(),
128
+ (0, class_validator_1.IsString)({ each: true }),
129
+ __metadata("design:type", Array)
130
+ ], Search.prototype, "columns", void 0);
131
+ __decorate([
132
+ (0, swagger_1.ApiProperty)(),
133
+ (0, class_validator_1.IsString)(),
134
+ __metadata("design:type", String)
135
+ ], Search.prototype, "value", void 0);
103
136
  class Order {
104
137
  }
105
138
  exports.Order = Order;
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zola_do/collection-query",
3
- "version": "0.1.40",
3
+ "version": "0.2.1",
4
4
  "description": "TypeORM query builder for filter, sort, paginate",
5
5
  "author": "zolaDO",
6
6
  "license": "ISC",
@@ -26,7 +26,7 @@
26
26
  "peerDependencies": {
27
27
  "@nestjs/swagger": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
28
28
  "class-transformer": "^0.5.1",
29
- "class-validator": "^0.14.2 || ^0.15.0",
29
+ "class-validator": "^0.14.2 || ^0.15.1",
30
30
  "typeorm": "^0.3.0"
31
31
  },
32
32
  "peerDependenciesMeta": {