@zola_do/collection-query 0.3.6 → 0.3.7

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/README.md CHANGED
@@ -17,6 +17,10 @@ TypeORM query builder for filter, sort, paginate, and cursor-based operations on
17
17
  - **Fuzzy search** with PostgreSQL similarity
18
18
  - **URL encoding** for compact query strings
19
19
 
20
+ Unknown filter operators and non-identifier column/JSON/include fragments are rejected with `400`. `take` is clamped to a **server-only** `maxTake` (default 200). Set it via `QueryConstructor.constructQuery(..., { maxTake })` or CRUD `collectionQueryDefaults` — never from the client query. `fetchAll: true` (also server-only) skips pagination.
21
+
22
+ Optional cursor signing: set `cursorSecret` on constructQuery limits, `COLLECTION_QUERY_CURSOR_SECRET`, or CRUD `collectionQueryDefaults.cursorSecret` to HMAC-sign pagination cursors.
23
+
20
24
  ## Installation
21
25
 
22
26
  ```bash
@@ -0,0 +1,3 @@
1
+ import { CursorTokenPayload } from './query';
2
+ export declare function decodeCursorToken(token: string, cursorSecret?: string): CursorTokenPayload;
3
+ export declare function encodeCursorToken(payload: CursorTokenPayload, cursorSecret?: string): string;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeCursorToken = decodeCursorToken;
4
+ exports.encodeCursorToken = encodeCursorToken;
5
+ const common_1 = require("@nestjs/common");
6
+ const crypto_1 = require("crypto");
7
+ const parseCursorPayload = (body) => {
8
+ const payload = JSON.parse(Buffer.from(body, 'base64url').toString('utf8'));
9
+ if ((payload === null || payload === void 0 ? void 0 : payload.version) !== 1 ||
10
+ !payload.orderColumn ||
11
+ !payload.orderDirection ||
12
+ !payload.stableColumn) {
13
+ throw new Error('invalid_cursor_payload');
14
+ }
15
+ return payload;
16
+ };
17
+ function decodeCursorToken(token, cursorSecret) {
18
+ try {
19
+ if (cursorSecret) {
20
+ const dotIndex = token.lastIndexOf('.');
21
+ if (dotIndex <= 0) {
22
+ throw new common_1.BadRequestException('invalid_cursor_signature');
23
+ }
24
+ const body = token.slice(0, dotIndex);
25
+ const signature = token.slice(dotIndex + 1);
26
+ const expected = (0, crypto_1.createHmac)('sha256', cursorSecret)
27
+ .update(body)
28
+ .digest('base64url');
29
+ const sigBuffer = Buffer.from(signature);
30
+ const expectedBuffer = Buffer.from(expected);
31
+ if (sigBuffer.length !== expectedBuffer.length ||
32
+ !(0, crypto_1.timingSafeEqual)(sigBuffer, expectedBuffer)) {
33
+ throw new common_1.BadRequestException('invalid_cursor_signature');
34
+ }
35
+ return parseCursorPayload(body);
36
+ }
37
+ return parseCursorPayload(token);
38
+ }
39
+ catch (error) {
40
+ if (error instanceof common_1.BadRequestException) {
41
+ throw error;
42
+ }
43
+ throw new common_1.BadRequestException('invalid_cursor');
44
+ }
45
+ }
46
+ function encodeCursorToken(payload, cursorSecret) {
47
+ const body = Buffer.from(JSON.stringify(payload), 'utf8').toString('base64url');
48
+ if (!cursorSecret) {
49
+ return body;
50
+ }
51
+ const signature = (0, crypto_1.createHmac)('sha256', cursorSecret)
52
+ .update(body)
53
+ .digest('base64url');
54
+ return `${body}.${signature}`;
55
+ }
56
+ //# sourceMappingURL=cursor-token.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-token.helper.js","sourceRoot":"","sources":["../src/cursor-token.helper.ts"],"names":[],"mappings":";;;;AAAA,2CAAqD;AACrD,mCAAqD;AAGrD,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAsB,EAAE;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC1B,CAAC;IAExB,IACE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,CAAC;QACtB,CAAC,OAAO,CAAC,WAAW;QACpB,CAAC,OAAO,CAAC,cAAc;QACvB,CAAC,OAAO,CAAC,YAAY,EACrB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,2BACE,KAAa,EACb,YAAqB;IAErB,IAAI,CAAC;QACH,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAA,mBAAU,EAAC,QAAQ,EAAE,YAAY,CAAC;iBAChD,MAAM,CAAC,IAAI,CAAC;iBACZ,MAAM,CAAC,WAAW,CAAC,CAAC;YAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,IACE,SAAS,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;gBAC1C,CAAC,IAAA,wBAAe,EAAC,SAAS,EAAE,cAAc,CAAC,EAC3C,CAAC;gBACD,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,4BAAmB,EAAE,CAAC;YACzC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,2BACE,OAA2B,EAC3B,YAAqB;IAErB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAChE,WAAW,CACZ,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,mBAAU,EAAC,QAAQ,EAAE,YAAY,CAAC;SACjD,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvB,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;AAChC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
+ export * from './cursor-token.helper';
1
2
  export * from './filter_operators';
2
3
  export * from './query';
3
4
  export * from './query-constructor';
4
5
  export * from './query-mapper';
6
+ export * from './query-safety';
package/dist/index.js CHANGED
@@ -14,8 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./cursor-token.helper"), exports);
17
18
  __exportStar(require("./filter_operators"), exports);
18
19
  __exportStar(require("./query"), exports);
19
20
  __exportStar(require("./query-constructor"), exports);
20
21
  __exportStar(require("./query-mapper"), exports);
22
+ __exportStar(require("./query-safety"), exports);
21
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,0CAAwB;AACxB,sDAAoC;AACpC,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB;AACxB,sDAAoC;AACpC,iDAA+B;AAC/B,iDAA+B"}
@@ -1,5 +1,6 @@
1
1
  import { ObjectLiteral, Repository, SelectQueryBuilder, DataSource } from 'typeorm';
2
2
  import { CollectionQuery, CollectionResult } from './query';
3
+ import { CollectionQueryLimits } from './query-safety';
3
4
  export interface MultiEntityFuzzySearchConfig {
4
5
  repository: Repository<any>;
5
6
  sourceName: string;
@@ -7,11 +8,11 @@ export interface MultiEntityFuzzySearchConfig {
7
8
  selectColumns?: string[];
8
9
  idColumn?: string;
9
10
  }
10
- export declare const buildQuery: <T>(aggregate: string, queryBuilder: SelectQueryBuilder<T>, query: CollectionQuery, stableSortColumn?: string) => void;
11
+ export declare const buildQuery: <T>(aggregate: string, queryBuilder: SelectQueryBuilder<T>, query: CollectionQuery, stableSortColumn?: string, limits?: CollectionQueryLimits) => void;
11
12
  export declare class QueryConstructor {
12
13
  static isCursorQuery(query: CollectionQuery): boolean;
13
- static runCursorQuery<T extends ObjectLiteral>(repository: Repository<T>, query: CollectionQuery, withDelete?: boolean): Promise<CollectionResult<T>>;
14
- static constructQuery<T extends ObjectLiteral>(repository: Repository<T>, query: CollectionQuery, withDelete?: boolean): SelectQueryBuilder<T>;
14
+ static runCursorQuery<T extends ObjectLiteral>(repository: Repository<T>, query: CollectionQuery, withDelete?: boolean, limits?: CollectionQueryLimits): Promise<CollectionResult<T>>;
15
+ static constructQuery<T extends ObjectLiteral>(repository: Repository<T>, query: CollectionQuery, withDelete?: boolean, limits?: CollectionQueryLimits): SelectQueryBuilder<T>;
15
16
  private static buildCursorFromEntity;
16
17
  static removeEmptyFilter(query: CollectionQuery): CollectionQuery;
17
18
  static removeFilter(query: CollectionQuery, key: string): CollectionQuery;
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryConstructor = exports.buildQuery = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const filter_operators_1 = require("./filter_operators");
6
+ const query_safety_1 = require("./query-safety");
7
+ const cursor_token_helper_1 = require("./cursor-token.helper");
6
8
  const normalizeColumnReference = (column) => {
7
9
  const [mainColumn] = column.split('->>');
8
10
  return mainColumn.split('@>')[0];
@@ -93,7 +95,8 @@ const addFilterConditions = (op, value, queryCondition, queryParam, isArrayField
93
95
  else if (op === filter_operators_1.FilterOperators.IsNull) {
94
96
  return `${queryCondition} IS NULL`;
95
97
  }
96
- else if (op === filter_operators_1.FilterOperators.IsNotNull) {
98
+ else if (op === filter_operators_1.FilterOperators.IsNotNull ||
99
+ op === filter_operators_1.FilterOperators.NotNull) {
97
100
  return `${queryCondition} IS NOT NULL`;
98
101
  }
99
102
  else if (op === filter_operators_1.FilterOperators.EqualTo) {
@@ -129,9 +132,8 @@ const addFilterConditions = (op, value, queryCondition, queryParam, isArrayField
129
132
  else if (op === filter_operators_1.FilterOperators.NotEqual) {
130
133
  return `${queryCondition} <> :${queryParam}`;
131
134
  }
132
- else {
133
- return `${queryCondition} ${op} :${queryParam}`;
134
- }
135
+ (0, query_safety_1.assertAllowedOperator)(op);
136
+ throw new common_1.BadRequestException('unsupported_filter_operator');
135
137
  };
136
138
  const addFilterParams = (op, value, column, acc, isArrayField = false, nestedColumn = '') => {
137
139
  if (isArrayField) {
@@ -351,24 +353,6 @@ const applyOrderBy = (aggregate, queryBuilder, orderBy, stableSortColumn) => {
351
353
  queryBuilder.addOrderBy(`${aggregate}.${stableSortColumn}`, 'ASC');
352
354
  }
353
355
  };
354
- const normalizeCursorToken = (token) => {
355
- try {
356
- const payload = JSON.parse(Buffer.from(token, 'base64url').toString('utf8'));
357
- if ((payload === null || payload === void 0 ? void 0 : payload.version) !== 1 ||
358
- !payload.orderColumn ||
359
- !payload.orderDirection ||
360
- !payload.stableColumn) {
361
- throw new Error('invalid_cursor_payload');
362
- }
363
- return payload;
364
- }
365
- catch (_a) {
366
- throw new common_1.BadRequestException('invalid_cursor');
367
- }
368
- };
369
- const encodeCursorToken = (payload) => {
370
- return Buffer.from(JSON.stringify(payload), 'utf8').toString('base64url');
371
- };
372
356
  const invertDirection = (direction) => {
373
357
  return direction === 'ASC' ? 'DESC' : 'ASC';
374
358
  };
@@ -390,7 +374,7 @@ const getCursorOrderConfig = (query, fallbackStableSortColumn) => {
390
374
  orderDirection,
391
375
  };
392
376
  };
393
- const applyCursorPagination = (aggregate, queryBuilder, query, stableSortColumn) => {
377
+ const applyCursorPagination = (aggregate, queryBuilder, query, stableSortColumn, cursorSecret) => {
394
378
  var _a;
395
379
  const isCursorMode = !!query.cursor || !!query.cursorDirection;
396
380
  if (!isCursorMode) {
@@ -416,7 +400,7 @@ const applyCursorPagination = (aggregate, queryBuilder, query, stableSortColumn)
416
400
  ? '>'
417
401
  : '<';
418
402
  if (query.cursor) {
419
- const cursorPayload = normalizeCursorToken(query.cursor);
403
+ const cursorPayload = (0, cursor_token_helper_1.decodeCursorToken)(query.cursor, cursorSecret);
420
404
  if (cursorPayload.orderColumn !== orderColumn ||
421
405
  cursorPayload.orderDirection !== orderDirection ||
422
406
  cursorPayload.stableColumn !== stableColumn) {
@@ -476,53 +460,21 @@ const applyGroupBy = (aggregate, queryBuilder, groupBy) => {
476
460
  });
477
461
  };
478
462
  const applyHaving = (aggregate, queryBuilder, havingConditions) => {
463
+ let havingIndex = 0;
479
464
  for (const conditions of havingConditions) {
465
+ const queryParams = {};
480
466
  const orConditions = conditions.map(({ column, value, operator: op }) => {
481
- if (op === filter_operators_1.FilterOperators.Between &&
482
- Array.isArray(value) &&
483
- value.length === 2) {
484
- return `COUNT(${aggregate}.*) BETWEEN:${column}_1 AND:${column} _2`;
485
- }
486
- else if (op === filter_operators_1.FilterOperators.In && Array.isArray(value)) {
487
- return `COUNT(${aggregate}.*) IN(: ...${column})`;
488
- }
489
- else if (op === filter_operators_1.FilterOperators.Like) {
490
- return `COUNT(${aggregate}.*) LIKE:${column}`;
491
- }
492
- else if (op === filter_operators_1.FilterOperators.All || op === filter_operators_1.FilterOperators.Any) {
493
- return `COUNT(${aggregate}.${column}) ${op} :${column}`;
494
- }
495
- else {
496
- return `COUNT(${aggregate}.${column}) ${op} :${column}`;
497
- }
467
+ const param = `having_${column}_${++havingIndex}`;
468
+ addFilterParams(op, value, param, queryParams);
469
+ return addFilterConditions(op, value, `COUNT(${aggregate}.${column})`, param);
498
470
  });
499
- const queryParams = conditions.reduce((acc, { column, value, operator: op }) => {
500
- if (op === filter_operators_1.FilterOperators.Between &&
501
- Array.isArray(value) &&
502
- value.length === 2) {
503
- acc[`${column} _1`] = value[0];
504
- acc[`${column} _2`] = value[1];
505
- }
506
- else if (op === filter_operators_1.FilterOperators.In && Array.isArray(value)) {
507
- acc[column] = value;
508
- }
509
- else if (op === filter_operators_1.FilterOperators.Like) {
510
- acc[column] = `% ${value}% `;
511
- }
512
- else if (op === filter_operators_1.FilterOperators.All || op === filter_operators_1.FilterOperators.Any) {
513
- acc[column] = value;
514
- }
515
- else {
516
- acc[column] = value;
517
- }
518
- return acc;
519
- }, {});
520
471
  if (orConditions.length > 0) {
521
472
  queryBuilder.andHaving(`(${orConditions.join(' OR ')})`, queryParams);
522
473
  }
523
474
  }
524
475
  };
525
- const buildQuery = (aggregate, queryBuilder, query, stableSortColumn) => {
476
+ const buildQuery = (aggregate, queryBuilder, query, stableSortColumn, limits) => {
477
+ (0, query_safety_1.applyQuerySafety)(query, { limits });
526
478
  if (query.select && query.select.length > 0) {
527
479
  queryBuilder.select(query.select.map((column) => `${aggregate}.${column}`));
528
480
  }
@@ -553,7 +505,7 @@ const buildQuery = (aggregate, queryBuilder, query, stableSortColumn) => {
553
505
  if (query.having && query.having.length > 0) {
554
506
  applyHaving(aggregate, queryBuilder, query.having);
555
507
  }
556
- const cursorConfig = applyCursorPagination(aggregate, queryBuilder, query, stableSortColumn);
508
+ const cursorConfig = applyCursorPagination(aggregate, queryBuilder, query, stableSortColumn, limits === null || limits === void 0 ? void 0 : limits.cursorSecret);
557
509
  if (!cursorConfig) {
558
510
  if (query.take !== undefined) {
559
511
  queryBuilder.take(query.take);
@@ -571,16 +523,20 @@ class QueryConstructor {
571
523
  static isCursorQuery(query) {
572
524
  return !!query.cursor || !!query.cursorDirection;
573
525
  }
574
- static async runCursorQuery(repository, query, withDelete = false) {
526
+ static async runCursorQuery(repository, query, withDelete = false, limits) {
575
527
  var _a, _b, _c;
576
- var _d;
528
+ var _d, _e;
577
529
  const defaultStableSortColumn = ((_c = (_b = (_a = repository.metadata) === null || _a === void 0 ? void 0 : _a.primaryColumns) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.propertyName) || 'id';
530
+ const resolvedLimits = (0, query_safety_1.resolveCollectionQueryLimits)(query, limits);
531
+ if (resolvedLimits.fetchAll) {
532
+ throw new common_1.BadRequestException('fetch_all_incompatible_with_cursor');
533
+ }
578
534
  const cursorQuery = Object.assign(Object.assign({}, query), { where: query.where || [], orderBy: query.orderBy || [], includes: query.includes || [], includeAndSelect: query.includeAndSelect || [], cursorDirection: query.cursorDirection || 'n' });
579
- const pageSize = (_d = cursorQuery.take) !== null && _d !== void 0 ? _d : 20;
535
+ const pageSize = (_e = (0, query_safety_1.normalizeTake)((_d = cursorQuery.take) !== null && _d !== void 0 ? _d : 20, resolvedLimits.maxTake)) !== null && _e !== void 0 ? _e : 20;
580
536
  cursorQuery.take = pageSize;
581
537
  const baseCountQuery = Object.assign(Object.assign({}, cursorQuery), { cursor: undefined, cursorDirection: undefined, skip: undefined });
582
- const countBuilder = this.constructQuery(repository, baseCountQuery, withDelete);
583
- const queryBuilder = this.constructQuery(repository, cursorQuery, withDelete);
538
+ const countBuilder = this.constructQuery(repository, baseCountQuery, withDelete, resolvedLimits);
539
+ const queryBuilder = this.constructQuery(repository, cursorQuery, withDelete, resolvedLimits);
584
540
  const total = await countBuilder.getCount();
585
541
  const rows = await queryBuilder.getMany();
586
542
  const hasMore = rows.length > pageSize;
@@ -589,8 +545,8 @@ class QueryConstructor {
589
545
  ? items.reverse()
590
546
  : items;
591
547
  const { stableColumn, orderColumn, orderDirection } = getCursorOrderConfig(cursorQuery, defaultStableSortColumn);
592
- const nextCursor = this.buildCursorFromEntity(normalizedItems[normalizedItems.length - 1], orderColumn, orderDirection, stableColumn);
593
- const prevCursor = this.buildCursorFromEntity(normalizedItems[0], orderColumn, orderDirection, stableColumn);
548
+ const nextCursor = this.buildCursorFromEntity(normalizedItems[normalizedItems.length - 1], orderColumn, orderDirection, stableColumn, resolvedLimits.cursorSecret);
549
+ const prevCursor = this.buildCursorFromEntity(normalizedItems[0], orderColumn, orderDirection, stableColumn, resolvedLimits.cursorSecret);
594
550
  return {
595
551
  total,
596
552
  items: normalizedItems,
@@ -602,8 +558,11 @@ class QueryConstructor {
602
558
  hn: hasMore,
603
559
  };
604
560
  }
605
- static constructQuery(repository, query, withDelete = false) {
561
+ static constructQuery(repository, query, withDelete = false, limits) {
606
562
  var _a, _b;
563
+ if (limits) {
564
+ (0, query_safety_1.setCollectionQueryLimits)(query, limits);
565
+ }
607
566
  const aggregateColumns = {};
608
567
  const metaData = repository.manager.dataSource.getMetadata(repository.target);
609
568
  metaData.columns.map((c) => {
@@ -633,10 +592,10 @@ class QueryConstructor {
633
592
  enforceAllowedColumns(filterColumns, query.allowedFilterColumns, 'filter');
634
593
  enforceAllowedColumns(sortColumns, query.allowedSortColumns, 'sort');
635
594
  enforceIncludeDepth(query.includes, query.includeAndSelect, query.maxIncludeDepth);
636
- (0, exports.buildQuery)(aggregate, queryBuilder, query, defaultStableSortColumn);
595
+ (0, exports.buildQuery)(aggregate, queryBuilder, query, defaultStableSortColumn, (0, query_safety_1.resolveCollectionQueryLimits)(query, limits));
637
596
  return queryBuilder;
638
597
  }
639
- static buildCursorFromEntity(entity, orderColumn, orderDirection, stableColumn) {
598
+ static buildCursorFromEntity(entity, orderColumn, orderDirection, stableColumn, cursorSecret) {
640
599
  if (!entity) {
641
600
  return undefined;
642
601
  }
@@ -648,7 +607,7 @@ class QueryConstructor {
648
607
  stableColumn,
649
608
  stableValue: entity[stableColumn],
650
609
  };
651
- return encodeCursorToken(payload);
610
+ return (0, cursor_token_helper_1.encodeCursorToken)(payload, cursorSecret);
652
611
  }
653
612
  static removeEmptyFilter(query) {
654
613
  query.where = (query.where || []).filter((x) => x.length > 0);
@@ -666,6 +625,9 @@ class QueryConstructor {
666
625
  entityConfigs.length === 0) {
667
626
  return { items: [], total: 0 };
668
627
  }
628
+ (0, query_safety_1.applyQuerySafety)(query, {
629
+ limits: (0, query_safety_1.resolveCollectionQueryLimits)(query),
630
+ });
669
631
  const searchValue = query.fuzzySearch[0].value;
670
632
  const params = [searchValue];
671
633
  const unionQueries = [];
@@ -689,9 +651,11 @@ class QueryConstructor {
689
651
  }
690
652
  });
691
653
  entityMetadata.forEach(({ config, metaData, tableName, primaryKey, nameColumn }) => {
654
+ var _a;
692
655
  const similarityConditions = [];
693
656
  const maxSimilarityExpressions = [];
694
657
  config.searchColumns.forEach((column) => {
658
+ (0, query_safety_1.assertSqlIdentifier)(column, 'search column');
695
659
  const similarityExpr = `similarity("${tableName}"."${column}", $1)`;
696
660
  similarityConditions.push(`${similarityExpr} > 0.1`);
697
661
  maxSimilarityExpressions.push(similarityExpr);
@@ -712,7 +676,7 @@ class QueryConstructor {
712
676
  else {
713
677
  selectClauses.push(`NULL AS "name"`);
714
678
  }
715
- selectClauses.push(`'${config.sourceName}' AS "source"`);
679
+ selectClauses.push(`'${String((_a = config.sourceName) !== null && _a !== void 0 ? _a : '').replace(/'/g, "''")}' AS "source"`);
716
680
  selectClauses.push(`${scoreExpr} AS "score"`);
717
681
  Array.from(allSelectColumns)
718
682
  .sort()
@@ -735,7 +699,7 @@ class QueryConstructor {
735
699
  const conditions = element.map((x) => {
736
700
  const columnRef = `"${tableName}"."${x.column}"`;
737
701
  const paramIndex = params.length + 1;
738
- const op = x.operator || filter_operators_1.FilterOperators.EqualTo;
702
+ const op = (0, query_safety_1.assertAllowedOperator)(x.operator || filter_operators_1.FilterOperators.EqualTo);
739
703
  if (op === filter_operators_1.FilterOperators.Between &&
740
704
  Array.isArray(x.value) &&
741
705
  x.value.length === 2) {
@@ -800,10 +764,7 @@ class QueryConstructor {
800
764
  params.push(`%${x.value}%`);
801
765
  return `${columnRef} ILIKE $${paramIndex}`;
802
766
  }
803
- else {
804
- params.push(x.value);
805
- return `${columnRef} = $${paramIndex}`;
806
- }
767
+ throw new common_1.BadRequestException('unsupported_filter_operator');
807
768
  });
808
769
  whereConditions.push(`(${conditions.join(' AND ')})`);
809
770
  }
@@ -820,10 +781,12 @@ class QueryConstructor {
820
781
  let finalQuery = `(${unionQuery}) AS union_results`;
821
782
  finalQuery += `\nORDER BY "score" DESC`;
822
783
  if (query.take !== undefined) {
823
- finalQuery += `\nLIMIT ${query.take}`;
784
+ params.push(query.take);
785
+ finalQuery += `\nLIMIT $${params.length}`;
824
786
  }
825
787
  if (query.skip !== undefined) {
826
- finalQuery += `\nOFFSET ${query.skip}`;
788
+ params.push(query.skip);
789
+ finalQuery += `\nOFFSET $${params.length}`;
827
790
  }
828
791
  const rawResults = await dataSource.query(`SELECT * FROM ${finalQuery}`, params);
829
792
  const countQueries = [];
@@ -845,7 +808,7 @@ class QueryConstructor {
845
808
  const conditions = element.map((x) => {
846
809
  const columnRef = `"${tableName}"."${x.column}"`;
847
810
  const paramIndex = countParams.length + 1;
848
- const op = x.operator || filter_operators_1.FilterOperators.EqualTo;
811
+ const op = (0, query_safety_1.assertAllowedOperator)(x.operator || filter_operators_1.FilterOperators.EqualTo);
849
812
  if (op === filter_operators_1.FilterOperators.Between &&
850
813
  Array.isArray(x.value) &&
851
814
  x.value.length === 2) {
@@ -909,10 +872,7 @@ class QueryConstructor {
909
872
  countParams.push(`%${x.value}%`);
910
873
  return `${columnRef} ILIKE $${paramIndex}`;
911
874
  }
912
- else {
913
- countParams.push(x.value);
914
- return `${columnRef} = $${paramIndex}`;
915
- }
875
+ throw new common_1.BadRequestException('unsupported_filter_operator');
916
876
  });
917
877
  countQuery += ` AND (${conditions.join(' AND ')})`;
918
878
  }
@@ -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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"}
@@ -4,6 +4,7 @@ exports.encodeCollectionQuery = encodeCollectionQuery;
4
4
  exports.decodeCollectionQuery = decodeCollectionQuery;
5
5
  const query_1 = require("./query");
6
6
  const filter_operators_1 = require("./filter_operators");
7
+ const query_safety_1 = require("./query-safety");
7
8
  function encodeCollectionQuery(query) {
8
9
  const queryParams = [];
9
10
  if (query.select && query.select.length > 0) {
@@ -51,7 +52,7 @@ function decodeCollectionQuery(queryString) {
51
52
  const query = new query_1.CollectionQuery();
52
53
  const queryParams = new URLSearchParams(queryString);
53
54
  if (queryParams.has('s') && queryParams.get('s')) {
54
- query.select = queryParams.get('s').split(',');
55
+ query.select = queryParams.get('s').split(',').filter(Boolean);
55
56
  }
56
57
  if (queryParams.has('w') && queryParams.get('w')) {
57
58
  query.where = decodeWhere(queryParams.get('w'));
@@ -84,10 +85,10 @@ function decodeCollectionQuery(queryString) {
84
85
  query.orderBy = decodeOrderBy(queryParams.get('o'));
85
86
  }
86
87
  if (queryParams.has('i') && queryParams.get('i')) {
87
- query.includes = queryParams.get('i').split(',');
88
+ query.includes = queryParams.get('i').split(',').filter(Boolean);
88
89
  }
89
90
  if (queryParams.has('g') && queryParams.get('g')) {
90
- query.groupBy = queryParams.get('g').split(',');
91
+ query.groupBy = queryParams.get('g').split(',').filter(Boolean);
91
92
  }
92
93
  if (queryParams.has('h') && queryParams.get('h')) {
93
94
  query.having = decodeWhere(queryParams.get('h'));
@@ -95,6 +96,7 @@ function decodeCollectionQuery(queryString) {
95
96
  if (queryParams.has('c') && queryParams.get('c')) {
96
97
  query.count = queryParams.get('c') === 'true';
97
98
  }
99
+ (0, query_safety_1.applyQuerySafety)(query, { clampPagination: false });
98
100
  return query;
99
101
  }
100
102
  function encodeWhere(where) {
@@ -117,7 +119,7 @@ function decodeWhereItem(encoded) {
117
119
  return {
118
120
  column: parts[0],
119
121
  operator: parts[1],
120
- value: parts[2],
122
+ value: parts.slice(2).join(filter_operators_1.FilterSeparators.WhereEqual),
121
123
  };
122
124
  }
123
125
  function encodeOrderBy(orderBy) {
@@ -1 +1 @@
1
- {"version":3,"file":"query-mapper.js","sourceRoot":"","sources":["../src/query-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-mapper.js","sourceRoot":"","sources":["../src/query-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { CollectionQuery } from './query';
2
+ export declare const DEFAULT_MAX_TAKE = 200;
3
+ export declare function assertSqlIdentifier(value: string, label?: string): string;
4
+ export declare function assertAllowedOperator(operator: string | undefined): string;
5
+ export declare function assertSafeColumnReference(column: string, label?: string): void;
6
+ export declare function assertSafeOrderColumn(column: string): void;
7
+ export declare function assertSafeIncludePath(path: string): void;
8
+ export declare function assertOrderDirection(direction?: string): 'ASC' | 'DESC' | undefined;
9
+ export declare function assertOrderNulls(nulls?: string): 'NULLS FIRST' | 'NULLS LAST' | undefined;
10
+ export type CollectionQueryLimits = {
11
+ maxTake?: number;
12
+ fetchAll?: boolean;
13
+ cursorSecret?: string;
14
+ };
15
+ export declare function setCollectionQueryLimits(query: CollectionQuery, limits: CollectionQueryLimits): CollectionQuery;
16
+ export declare function getCollectionQueryLimits(query: CollectionQuery): CollectionQueryLimits;
17
+ export declare function resolveCollectionQueryLimits(query: CollectionQuery, explicit?: CollectionQueryLimits): CollectionQueryLimits;
18
+ export declare function resolveMaxTake(maxTake?: number): number;
19
+ export declare function normalizeTake(take: number | undefined, maxTake?: number): number | undefined;
20
+ export declare function normalizeSkip(skip: number | undefined): number | undefined;
21
+ export declare function applyQuerySafety(query: CollectionQuery, options?: {
22
+ clampPagination?: boolean;
23
+ limits?: CollectionQueryLimits;
24
+ }): void;
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_MAX_TAKE = void 0;
4
+ exports.assertSqlIdentifier = assertSqlIdentifier;
5
+ exports.assertAllowedOperator = assertAllowedOperator;
6
+ exports.assertSafeColumnReference = assertSafeColumnReference;
7
+ exports.assertSafeOrderColumn = assertSafeOrderColumn;
8
+ exports.assertSafeIncludePath = assertSafeIncludePath;
9
+ exports.assertOrderDirection = assertOrderDirection;
10
+ exports.assertOrderNulls = assertOrderNulls;
11
+ exports.setCollectionQueryLimits = setCollectionQueryLimits;
12
+ exports.getCollectionQueryLimits = getCollectionQueryLimits;
13
+ exports.resolveCollectionQueryLimits = resolveCollectionQueryLimits;
14
+ exports.resolveMaxTake = resolveMaxTake;
15
+ exports.normalizeTake = normalizeTake;
16
+ exports.normalizeSkip = normalizeSkip;
17
+ exports.applyQuerySafety = applyQuerySafety;
18
+ const common_1 = require("@nestjs/common");
19
+ const filter_operators_1 = require("./filter_operators");
20
+ exports.DEFAULT_MAX_TAKE = 200;
21
+ const SQL_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
22
+ const ALLOWED_OPERATORS = new Set(Object.values(filter_operators_1.FilterOperators));
23
+ const ORDER_DIRECTIONS = new Set(['ASC', 'DESC']);
24
+ const ORDER_NULLS = new Set(['NULLS FIRST', 'NULLS LAST']);
25
+ function assertSqlIdentifier(value, label = 'identifier') {
26
+ if (typeof value !== 'string' || !SQL_IDENTIFIER.test(value)) {
27
+ throw new common_1.BadRequestException(`Invalid ${label}`);
28
+ }
29
+ return value;
30
+ }
31
+ function assertAllowedOperator(operator) {
32
+ if (!operator || !ALLOWED_OPERATORS.has(operator)) {
33
+ throw new common_1.BadRequestException('unsupported_filter_operator');
34
+ }
35
+ return operator;
36
+ }
37
+ function assertSafeColumnReference(column, label = 'column') {
38
+ if (typeof column !== 'string' || !column) {
39
+ throw new common_1.BadRequestException(`Invalid ${label}`);
40
+ }
41
+ if (column.includes('.')) {
42
+ const [relation, field, ...rest] = column.split('.');
43
+ if (rest.length > 0 || !relation || !field) {
44
+ throw new common_1.BadRequestException(`Invalid ${label}`);
45
+ }
46
+ assertSqlIdentifier(relation, 'relation');
47
+ assertSafeColumnReference(field, label);
48
+ return;
49
+ }
50
+ if (column.includes('->>')) {
51
+ const [mainColumn, nestedColumn, ...rest] = column.split('->>');
52
+ if (rest.length > 0 || !mainColumn || !nestedColumn) {
53
+ throw new common_1.BadRequestException(`Invalid ${label}`);
54
+ }
55
+ if (mainColumn.includes('->')) {
56
+ const [main, path, ...pathRest] = mainColumn.split('->');
57
+ if (pathRest.length > 0 || !main || !path) {
58
+ throw new common_1.BadRequestException(`Invalid ${label}`);
59
+ }
60
+ assertSqlIdentifier(main, label);
61
+ assertSqlIdentifier(path, 'json path');
62
+ }
63
+ else {
64
+ assertSqlIdentifier(mainColumn, label);
65
+ }
66
+ assertSqlIdentifier(nestedColumn, 'json key');
67
+ return;
68
+ }
69
+ if (column.includes('@>')) {
70
+ const [mainColumn, nestedColumn, ...rest] = column.split('@>');
71
+ if (rest.length > 0 || !mainColumn || !nestedColumn) {
72
+ throw new common_1.BadRequestException(`Invalid ${label}`);
73
+ }
74
+ assertSqlIdentifier(mainColumn, label);
75
+ assertSqlIdentifier(nestedColumn, 'json key');
76
+ return;
77
+ }
78
+ if (column.includes('->')) {
79
+ const [main, path, ...rest] = column.split('->');
80
+ if (rest.length > 0 || !main || !path) {
81
+ throw new common_1.BadRequestException(`Invalid ${label}`);
82
+ }
83
+ assertSqlIdentifier(main, label);
84
+ assertSqlIdentifier(path, 'json path');
85
+ return;
86
+ }
87
+ assertSqlIdentifier(column, label);
88
+ }
89
+ function assertSafeOrderColumn(column) {
90
+ if (typeof column !== 'string' || !column) {
91
+ throw new common_1.BadRequestException('Invalid sort column');
92
+ }
93
+ if (column.includes('.')) {
94
+ const parts = column.split('.');
95
+ if (parts.length !== 2) {
96
+ throw new common_1.BadRequestException('Invalid sort column');
97
+ }
98
+ parts.forEach((part) => assertSqlIdentifier(part, 'sort column'));
99
+ return;
100
+ }
101
+ assertSqlIdentifier(column, 'sort column');
102
+ }
103
+ function assertSafeIncludePath(path) {
104
+ if (typeof path !== 'string' || !path) {
105
+ throw new common_1.BadRequestException('Invalid include');
106
+ }
107
+ path.split('.').forEach((segment) => assertSqlIdentifier(segment, 'include'));
108
+ }
109
+ function assertOrderDirection(direction) {
110
+ if (direction === undefined || direction === '') {
111
+ return undefined;
112
+ }
113
+ const normalized = String(direction).toUpperCase();
114
+ if (!ORDER_DIRECTIONS.has(normalized)) {
115
+ throw new common_1.BadRequestException('invalid_order_direction');
116
+ }
117
+ return normalized;
118
+ }
119
+ function assertOrderNulls(nulls) {
120
+ if (nulls === undefined || nulls === '') {
121
+ return undefined;
122
+ }
123
+ if (!ORDER_NULLS.has(nulls)) {
124
+ throw new common_1.BadRequestException('invalid_order_nulls');
125
+ }
126
+ return nulls;
127
+ }
128
+ const QUERY_LIMITS = Symbol.for('zola.collectionQuery.limits');
129
+ function setCollectionQueryLimits(query, limits) {
130
+ const current = getCollectionQueryLimits(query);
131
+ query[QUERY_LIMITS] = Object.assign(Object.assign({}, current), limits);
132
+ return query;
133
+ }
134
+ function getCollectionQueryLimits(query) {
135
+ return query[QUERY_LIMITS] || {};
136
+ }
137
+ function resolveCollectionQueryLimits(query, explicit) {
138
+ var _a;
139
+ var _b, _c;
140
+ const envCursorSecret = (_a = process.env.COLLECTION_QUERY_CURSOR_SECRET) === null || _a === void 0 ? void 0 : _a.trim();
141
+ return Object.assign(Object.assign(Object.assign({}, getCollectionQueryLimits(query)), explicit), { cursorSecret: (_c = (_b = explicit === null || explicit === void 0 ? void 0 : explicit.cursorSecret) !== null && _b !== void 0 ? _b : getCollectionQueryLimits(query).cursorSecret) !== null && _c !== void 0 ? _c : (envCursorSecret || undefined) });
142
+ }
143
+ function resolveMaxTake(maxTake) {
144
+ if (maxTake === undefined || maxTake === null) {
145
+ return exports.DEFAULT_MAX_TAKE;
146
+ }
147
+ if (!Number.isInteger(maxTake) || maxTake < 1) {
148
+ throw new common_1.BadRequestException('invalid_max_take');
149
+ }
150
+ return maxTake;
151
+ }
152
+ function normalizeTake(take, maxTake) {
153
+ if (take === undefined) {
154
+ return undefined;
155
+ }
156
+ if (!Number.isInteger(take) || take < 1) {
157
+ throw new common_1.BadRequestException('invalid_take');
158
+ }
159
+ return Math.min(take, resolveMaxTake(maxTake));
160
+ }
161
+ function normalizeSkip(skip) {
162
+ if (skip === undefined) {
163
+ return undefined;
164
+ }
165
+ if (!Number.isInteger(skip) || skip < 0) {
166
+ throw new common_1.BadRequestException('invalid_skip');
167
+ }
168
+ return skip;
169
+ }
170
+ function assertWhereGroups(groups, label) {
171
+ (groups || []).forEach((group) => {
172
+ group.forEach((item) => {
173
+ assertSafeColumnReference(item.column, label);
174
+ assertAllowedOperator(item.operator);
175
+ });
176
+ });
177
+ }
178
+ function assertOrders(orderBy) {
179
+ (orderBy || []).forEach((order) => {
180
+ assertSafeOrderColumn(order.column);
181
+ order.direction = assertOrderDirection(order.direction);
182
+ order.nulls = assertOrderNulls(order.nulls);
183
+ });
184
+ }
185
+ function assertIncludes(includes) {
186
+ (includes || []).forEach((include) => assertSafeIncludePath(include));
187
+ }
188
+ function assertIncludeAndSelect(includeAndSelect) {
189
+ (includeAndSelect || []).forEach((item) => {
190
+ assertSafeIncludePath(item.name);
191
+ (item.select || []).forEach((field) => assertSqlIdentifier(field, 'include select'));
192
+ });
193
+ }
194
+ function assertFuzzySearch(fuzzySearch) {
195
+ (fuzzySearch || []).forEach((search) => {
196
+ (search.columns || []).forEach((column) => assertSafeColumnReference(column, 'search column'));
197
+ });
198
+ }
199
+ function applyQuerySafety(query, options) {
200
+ (query.select || []).forEach((column) => assertSqlIdentifier(column, 'select column'));
201
+ (query.groupBy || []).forEach((column) => assertSqlIdentifier(column, 'groupBy column'));
202
+ assertWhereGroups(query.where, 'filter column');
203
+ assertWhereGroups(query.having, 'having column');
204
+ assertOrders(query.orderBy);
205
+ assertIncludes(query.includes);
206
+ assertIncludeAndSelect(query.includeAndSelect);
207
+ assertFuzzySearch(query.fuzzySearch);
208
+ (query.search || []).forEach((search) => {
209
+ (search.columns || []).forEach((column) => assertSafeColumnReference(column, 'search column'));
210
+ });
211
+ (query.leftJoinAndMapOne || []).forEach((include) => {
212
+ if (include === null || include === void 0 ? void 0 : include.mapToProperty) {
213
+ assertSqlIdentifier(include.mapToProperty, 'join property');
214
+ }
215
+ if (include === null || include === void 0 ? void 0 : include.property) {
216
+ assertSqlIdentifier(include.property, 'join property');
217
+ }
218
+ });
219
+ if (query.stableSortColumn) {
220
+ assertSqlIdentifier(query.stableSortColumn, 'stable sort column');
221
+ }
222
+ const limits = resolveCollectionQueryLimits(query, options === null || options === void 0 ? void 0 : options.limits);
223
+ if ((options === null || options === void 0 ? void 0 : options.clampPagination) === false) {
224
+ if (query.take !== undefined &&
225
+ (!Number.isInteger(query.take) || query.take < 1)) {
226
+ throw new common_1.BadRequestException('invalid_take');
227
+ }
228
+ if (query.skip !== undefined &&
229
+ (!Number.isInteger(query.skip) || query.skip < 0)) {
230
+ throw new common_1.BadRequestException('invalid_skip');
231
+ }
232
+ return;
233
+ }
234
+ if (limits.fetchAll) {
235
+ if (query.cursor || query.cursorDirection) {
236
+ throw new common_1.BadRequestException('fetch_all_incompatible_with_cursor');
237
+ }
238
+ query.take = undefined;
239
+ query.skip = undefined;
240
+ return;
241
+ }
242
+ query.take = normalizeTake(query.take, limits.maxTake);
243
+ query.skip = normalizeSkip(query.skip);
244
+ }
245
+ //# sourceMappingURL=query-safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-safety.js","sourceRoot":"","sources":["../src/query-safety.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.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "TypeORM query builder for filter, sort, paginate",
5
5
  "author": "zolaDO",
6
6
  "license": "ISC",