@smartsoft001/crud-shell-nestjs 2.186.0 → 2.188.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.
package/README.md CHANGED
@@ -69,6 +69,37 @@ ownership records; the policy decides how to treat them.
69
69
  <tr><td>changes (WebSocket)</td><td>handleFilter — Subscribes to the changes of one entity, <code>{ id }</code>, and emits <code>{ id, type }</code> per change. Requires a JWT and a <code>changePolicy</code>.</td></tr>
70
70
  </table>
71
71
 
72
+ ## 🛡️ Query bounds and exports
73
+
74
+ `GET /` checks the query string before it reaches MongoDB and answers anything outside these bounds with `400 Bad Request`:
75
+
76
+ - Operators: `=`, `!=`, `>`, `>=`, `<`, `<=`, `~=` and repeated keys (joined into one `$in`, at most 100 values). Raw Mongo operators (`$where`, `$`-keys other than `$search`, `field:op=value`) and `/regex/` values are refused: they reach MongoDB as a `$match` stage, where an unbounded operator lets one request keep the database busy (denial of service).
77
+ - Field names: letters, digits and underscores, dotted for nested fields, at most 128 characters; `__proto__`, `prototype` and `constructor` are refused.
78
+ - `~=` and `$search` are matched literally (the text is escaped before it becomes a regular expression) and are at most 256 characters. Other values are at most 1024 characters, the encoded query at most 4096.
79
+ - `limit` is a positive integer, lowered to `maxQueryLimit` (default `100`), which is also the page size when no `limit` is sent. `offset` is an integer from `0` to `10000`; `next` and `last` links beyond it are left out.
80
+ - CSV and XLSX exports use `maxExportLimit` (default `10000`) instead. An export without `limit` that matches more rows is refused with `400` rather than truncated, and every export reports the match count in `X-Total-Count`.
81
+ - CSV text cells starting with `=`, `+`, `-` or `@` (also after spaces) or with a tab or line break get a leading apostrophe (OWASP CSV-injection guidance), so `+48 600 000 000` is exported as `'+48 600 000 000`. Numbers are unchanged.
82
+
83
+ ```ts
84
+ CrudShellNestjsModule.forRoot({
85
+ // ...
86
+ restApi: true,
87
+ socket: false,
88
+ maxQueryLimit: 500,
89
+ maxExportLimit: 50000,
90
+ });
91
+ ```
92
+
93
+ The bounds cap what one request asks for, not what it costs: index the fields you filter and sort on, scope data per customer, and set database timeouts and rate limits in the application.
94
+
95
+ ### Upgrading
96
+
97
+ - A list request without `limit` now returns at most `maxQueryLimit` rows and a larger `limit` is lowered to it: page through the list or raise `maxQueryLimit`.
98
+ - An `offset` above `10000` is refused.
99
+ - Raw operators and `/regex/` values are refused; use `~=` for a "contains" match.
100
+ - Field names containing `__proto__`, `prototype` or `constructor` are refused.
101
+ - A `CrudController` subclass that calls `super(service)` gets the default limits; pass the injected `SharedConfig` as the second argument to use the configured ones.
102
+
72
103
  ### Change subscriptions
73
104
 
74
105
  A subscription is refused unless the socket handshake carries a valid JWT in `auth.token`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartsoft001/crud-shell-nestjs",
3
- "version": "2.186.0",
3
+ "version": "2.188.0",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "typings": "./src/index.d.ts",
@@ -34,14 +34,14 @@
34
34
  "@nestjs/jwt": "^11.0.0",
35
35
  "@nestjs/passport": "^11.0.5",
36
36
  "@nestjs/websockets": "^11.2.1",
37
- "@smartsoft001/crud-domain": "2.186.0",
38
- "@smartsoft001/crud-shell-app-services": "2.186.0",
39
- "@smartsoft001/crud-shell-dtos": "2.186.0",
40
- "@smartsoft001/domain-core": "2.186.0",
41
- "@smartsoft001/mongo": "2.186.0",
42
- "@smartsoft001/nestjs": "2.186.0",
43
- "@smartsoft001/users": "2.186.0",
44
- "@smartsoft001/utils": "2.186.0",
37
+ "@smartsoft001/crud-domain": "2.188.0",
38
+ "@smartsoft001/crud-shell-app-services": "2.188.0",
39
+ "@smartsoft001/crud-shell-dtos": "2.188.0",
40
+ "@smartsoft001/domain-core": "2.188.0",
41
+ "@smartsoft001/mongo": "2.188.0",
42
+ "@smartsoft001/nestjs": "2.188.0",
43
+ "@smartsoft001/users": "2.188.0",
44
+ "@smartsoft001/utils": "2.188.0",
45
45
  "express": "^5.2.1",
46
46
  "rxjs": "^7.8.1",
47
47
  "socket.io": "^4.8.1"
package/src/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './lib/nestjs.module';
2
+ export * from './lib/crud-query.config';
2
3
  export * from './lib/guards/auth/auth.guard';
3
4
  export * from './lib/controllers';
4
5
  export * from './lib/gateways';
package/src/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./lib/nestjs.module"), exports);
5
+ tslib_1.__exportStar(require("./lib/crud-query.config"), exports);
5
6
  tslib_1.__exportStar(require("./lib/guards/auth/auth.guard"), exports);
6
7
  tslib_1.__exportStar(require("./lib/controllers"), exports);
7
8
  tslib_1.__exportStar(require("./lib/gateways"), exports);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/crud/shell/nestjs/src/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,uEAA6C;AAC7C,4DAAkC;AAClC,yDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/crud/shell/nestjs/src/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,kEAAwC;AACxC,uEAA6C;AAC7C,4DAAkC;AAClC,yDAA+B"}
@@ -4,9 +4,11 @@ import { CrudService } from '@smartsoft001/crud-shell-app-services';
4
4
  import { IEntity } from '@smartsoft001/domain-core';
5
5
  import type { IUser } from '@smartsoft001/users';
6
6
  import { IQ2mResult } from './query-to-mongo';
7
+ import type { ICrudQueryConfig } from '../../crud-query.config';
7
8
  export declare class CrudController<T extends IEntity<string>> {
8
9
  protected readonly service: CrudService<T>;
9
- constructor(service: CrudService<T>);
10
+ protected readonly queryConfig?: ICrudQueryConfig;
11
+ constructor(service: CrudService<T>, queryConfig?: ICrudQueryConfig);
10
12
  static getLink(req: Request): string;
11
13
  create(data: T, user: IUser, res: Response): Promise<Response>;
12
14
  createMany(data: T[], user: IUser, res: Response, mode: CreateManyMode): Promise<Response>;
@@ -26,7 +28,7 @@ export declare class CrudController<T extends IEntity<string>> {
26
28
  uploadAttachment(request: Request, response: Response, user?: IUser): Promise<void>;
27
29
  downloadAttachment(id: string, request: Request, response: Response, user?: IUser): Promise<void>;
28
30
  deleteAttachment(id: string, user?: IUser): Promise<void>;
29
- protected getQueryObject(queryObject: Record<string, unknown>): IQ2mResult;
31
+ protected getQueryObject(queryObject: Record<string, unknown>, isExport?: boolean): IQ2mResult;
30
32
  protected parseToXlsx(data: T[]): any;
31
33
  protected parseToCsv(data: T[]): string;
32
34
  protected getDataWithFields(data: Array<T>): {
@@ -12,13 +12,16 @@ const crud_shell_app_services_1 = require("@smartsoft001/crud-shell-app-services
12
12
  const nestjs_1 = require("@smartsoft001/nestjs");
13
13
  const utils_1 = require("@smartsoft001/utils");
14
14
  const stream_1 = require("stream");
15
- const query_to_mongo_1 = require("./query-to-mongo");
15
+ const http_query_1 = require("./http-query");
16
16
  const read_attachment_1 = require("./read-attachment");
17
+ const crud_query_config_1 = require("../../crud-query.config");
17
18
  const auth_guard_1 = require("../../guards/auth/auth.guard");
18
19
  let CrudController = CrudController_1 = class CrudController {
19
20
  service;
20
- constructor(service) {
21
+ queryConfig;
22
+ constructor(service, queryConfig) {
21
23
  this.service = service;
24
+ this.queryConfig = queryConfig;
22
25
  }
23
26
  static getLink(req) {
24
27
  return req.protocol + '://' + req.headers.host + req.url;
@@ -42,25 +45,30 @@ let CrudController = CrudController_1 = class CrudController {
42
45
  return result;
43
46
  }
44
47
  async read(user, req, res) {
45
- const object = this.getQueryObject(req.query);
48
+ const contentType = req.headers['content-type'];
49
+ const isExport = contentType === 'text/csv' ||
50
+ contentType ===
51
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
52
+ const object = this.getQueryObject(req.query, isExport);
46
53
  const { data, totalCount } = await this.service.read(object.criteria, {
47
54
  ...object.options,
48
- allowDiskUse: req.headers['content-type'] === 'text/csv' ||
49
- req.headers['content-type'] ===
50
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
55
+ allowDiskUse: isExport,
51
56
  }, user);
52
- if (req.headers['content-type'] === 'text/csv') {
57
+ if (isExport) {
58
+ // An export without an explicit page must contain every matching row.
59
+ if (!req.query['limit'] &&
60
+ (object.options.skip ?? 0) + data.length < totalCount) {
61
+ throw new common_1.BadRequestException(`The export matches ${totalCount} rows, more than maxExportLimit ` +
62
+ `(${object.options.limit}); narrow the filters or page with limit and offset`);
63
+ }
53
64
  res.set({
54
- 'Content-Type': 'text/csv',
65
+ 'Content-Type': contentType,
66
+ 'X-Total-Count': String(totalCount),
55
67
  });
56
- res.send(this.parseToCsv(data));
57
- }
58
- if (req.headers['content-type'] ===
59
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
60
- res.set({
61
- 'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
62
- });
63
- res.send(this.parseToXlsx(data));
68
+ res.send(contentType === 'text/csv'
69
+ ? this.parseToCsv(data)
70
+ : this.parseToXlsx(data));
71
+ return;
64
72
  }
65
73
  res.send({
66
74
  data,
@@ -143,13 +151,11 @@ let CrudController = CrudController_1 = class CrudController {
143
151
  await this.service.authorizeAttachment('delete', id, user);
144
152
  await this.service.deleteAttachment(id);
145
153
  }
146
- getQueryObject(queryObject) {
147
- let q = '';
148
- Object.keys(queryObject).forEach((key) => {
149
- q += `&${key}=${queryObject[key]}`;
150
- });
151
- const result = (0, query_to_mongo_1.q2m)(q);
152
- return result;
154
+ getQueryObject(queryObject, isExport = false) {
155
+ const maxLimit = isExport
156
+ ? (this.queryConfig?.maxExportLimit ?? crud_query_config_1.DEFAULT_MAX_EXPORT_LIMIT)
157
+ : (this.queryConfig?.maxQueryLimit ?? crud_query_config_1.DEFAULT_MAX_QUERY_LIMIT);
158
+ return (0, http_query_1.parseHttpQuery)(queryObject, { maxLimit });
153
159
  }
154
160
  parseToXlsx(data) {
155
161
  if (!data || !data.length) {
@@ -166,7 +172,14 @@ let CrudController = CrudController_1 = class CrudController {
166
172
  return '';
167
173
  }
168
174
  const { res, fields } = this.getDataWithFields(data);
169
- return new json2csv_1.Parser({ fields }).parse(res);
175
+ const safeRows = res.map((row) => Object.fromEntries(Object.entries(row).map(([key, value]) => [
176
+ key,
177
+ typeof value === 'string' &&
178
+ (/^\s*[=+\-@]/.test(value) || /^[\t\r\n]/.test(value))
179
+ ? "'" + value
180
+ : value,
181
+ ])));
182
+ return new json2csv_1.Parser({ fields }).parse(safeRows);
170
183
  }
171
184
  getDataWithFields(data) {
172
185
  const fields = [];
@@ -318,6 +331,8 @@ tslib_1.__decorate([
318
331
  ], CrudController.prototype, "deleteAttachment", null);
319
332
  exports.CrudController = CrudController = CrudController_1 = tslib_1.__decorate([
320
333
  (0, common_1.Controller)(''),
321
- tslib_1.__metadata("design:paramtypes", [crud_shell_app_services_1.CrudService])
334
+ tslib_1.__param(1, (0, common_1.Optional)()),
335
+ tslib_1.__param(1, (0, common_1.Inject)(nestjs_1.SharedConfig)),
336
+ tslib_1.__metadata("design:paramtypes", [crud_shell_app_services_1.CrudService, Object])
322
337
  ], CrudController);
323
338
  //# sourceMappingURL=crud.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crud.controller.js","sourceRoot":"","sources":["../../../../../../../../../packages/crud/shell/nestjs/src/lib/controllers/crud/crud.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud.controller.js","sourceRoot":"","sources":["../../../../../../../../../packages/crud/shell/nestjs/src/lib/controllers/crud/crud.controller.ts"],"names":[],"mappings":";;;;;AAAA,2CAkBwB;AAExB,uCAAkC;AAClC,kDAA4B;AAC5B,8EAAqC;AACrC,mDAA6B;AAG7B,mFAAoE;AAEpE,iDAA0D;AAE1D,+CAAkD;AAElD,mCAAkC;AAElC,6CAA8C;AAE9C,uDAAmD;AACnD,+DAGiC;AAEjC,6DAGsC;AAG/B,IAAM,cAAc,sBAApB,MAAM,cAAc;IAEJ;IAGA;IAJrB,YACqB,OAAuB,EAGvB,WAA8B;QAH9B,YAAO,GAAP,OAAO,CAAgB;QAGvB,gBAAW,GAAX,WAAW,CAAmB;IAChD,CAAC;IAEJ,MAAM,CAAC,OAAO,CAAC,GAAY;QACzB,OAAO,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;IAC3D,CAAC;IAKK,AAAN,KAAK,CAAC,MAAM,CACF,IAAO,EACP,IAAW,EACZ,GAAa;QAEpB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;QAChE,OAAO,GAAG,CAAC,IAAI,CAAC;YACd,EAAE;SACH,CAAC,CAAC;IACL,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACN,IAAS,EACT,IAAW,EACZ,GAAa,EACL,IAAoB;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAIK,AAAN,KAAK,CAAC,QAAQ,CACH,MAAsB,EACvB,IAAW;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,IAAI,CACA,IAAW,EACZ,GAAY,EACZ,GAAa;QAEpB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,QAAQ,GACZ,WAAW,KAAK,UAAU;YAC1B,WAAW;gBACT,mEAAmE,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAExD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAClD,MAAM,CAAC,QAAQ,EACf;YACE,GAAG,MAAM,CAAC,OAAO;YACjB,YAAY,EAAE,QAAQ;SACvB,EACD,IAAI,CACL,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,sEAAsE;YACtE,IACE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;gBACnB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,EACrD,CAAC;gBACD,MAAM,IAAI,4BAAmB,CAC3B,sBAAsB,UAAU,kCAAkC;oBAChE,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,qDAAqD,CAChF,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,GAAG,CAAC;gBACN,cAAc,EAAE,WAAW;gBAC3B,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC;aACpC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CACN,WAAW,KAAK,UAAU;gBACxB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAC3B,CAAC;YACF,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,UAAU;YACV,KAAK,EAAE,MAAM,CAAC,KAAK,CACjB,gBAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACzC,UAAU,CACX;SACF,CAAC,CAAC;IACL,CAAC;IAIK,AAAN,KAAK,CAAC,MAAM,CACD,MAAsB,EACvB,IAAO,EACP,IAAW;QAEnB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAIK,AAAN,KAAK,CAAC,aAAa,CACR,MAAsB,EACvB,IAAgB,EAChB,IAAW;QAEnB,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAIK,AAAN,KAAK,CAAC,MAAM,CACD,MAAsB,EACvB,IAAW;QAEnB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAIK,AAAN,KAAK,CAAC,gBAAgB,CACb,OAAgB,EAChB,QAAkB,EACjB,IAAY;QAEpB,MAAM,EAAE,GAAG,mBAAW,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAc,EAC/B,OAAO,EACP,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CACnC,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAClC,EAAE;YACF,MAAM,EAAE,iBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAc,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;QACrE,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE;YACF,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SACzB,CAAC,CAAC;IACL,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB,CACT,EAAU,EAChB,OAAgB,EAChB,QAAkB,EACjB,IAAY;QAEpB,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,0BAAiB,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,mEAAmE;YACnE,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;YAEhD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,EAAE;gBAC5D,KAAK;gBACL,GAAG;aACJ,CAAC,CAAC;YAEH,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,QAAQ,CAAC,GAAG,CAAC;gBACX,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,QAAQ,CAAC,WAAW;gBACpC,eAAe,EAAE,SAAS,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAChE,QAAQ,CAAC,MACX,EAAE;gBACF,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK;gBACvD,qBAAqB,EAAE,yBAAyB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG;aAChF,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACxB,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAE9D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACxB,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,QAAQ,CAAC,GAAG,CAAC;gBACX,cAAc,EAAE,OAAO;gBACvB,cAAc,EAAE,QAAQ,CAAC,WAAW;gBACpC,gBAAgB,EAAE,QAAQ,CAAC,MAAM;gBACjC,qBAAqB,EAAE,yBAAyB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG;aAChF,CAAC,CAAC;YAEH,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,gBAAgB,CACP,EAAU,EACf,IAAY;QAEpB,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAES,cAAc,CACtB,WAAoC,EACpC,QAAQ,GAAG,KAAK;QAEhB,MAAM,QAAQ,GAAG,QAAQ;YACvB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,IAAI,4CAAwB,CAAC;YAChE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,IAAI,2CAAuB,CAAC,CAAC;QAEjE,OAAO,IAAA,2BAAc,EAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;IAES,WAAW,CAAC,IAAS;QAC7B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAEzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAES,UAAU,CAAC,IAAS;QAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/B,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACxC,GAAG;YACH,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,CAAC,CAAC,GAAG,GAAG,KAAK;gBACb,CAAC,CAAC,KAAK;SACV,CAAC,CACH,CACF,CAAC;QACF,OAAO,IAAI,iBAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAES,iBAAiB,CAAC,IAAc;QACxC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,OAAO,GAAG,CACd,GAAW,EACX,OAAe,EACf,OAAgC,EAChC,EAAE;YACF,kEAAkE;YAClE,MAAM,IAAI,GAAG,GAA8B,CAAC;YAE5C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE1B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC3C,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAChD,CAAC;gBAED,IAAI,OAAO,YAAY,IAAI,EAAE,CAAC;oBAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAA,yBAAM,EAAC,OAAO,CAAC;yBACxB,EAAE,CAAC,eAAe,CAAC;yBACnB,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACnC,CAAC;gBAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEtB,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;qBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;oBACtD,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC;qBAAM,IAAI,OAAO,EAAE,CAAC;oBACnB,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,GAAG,GAAG,CAAC;wBAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;wBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAA+B,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,GAAG,GAAG,IAA+B,CAAC;YAE5C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACnC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;CACF,CAAA;AAvVY,wCAAc;AAenB;IAHL,IAAA,kBAAS,EAAC,yBAAY,CAAC;IACvB,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,GAAG,CAAC;IAEX,mBAAA,IAAA,aAAI,GAAE,CAAA;IACN,mBAAA,IAAA,aAAI,GAAE,CAAA;IACN,mBAAA,IAAA,YAAG,GAAE,CAAA;;;;4CAOP;AAIK;IAFL,IAAA,kBAAS,EAAC,yBAAY,CAAC;IACvB,IAAA,aAAI,EAAC,MAAM,CAAC;IAEV,mBAAA,IAAA,aAAI,GAAE,CAAA;IACN,mBAAA,IAAA,aAAI,GAAE,CAAA;IACN,mBAAA,IAAA,YAAG,GAAE,CAAA;IACL,mBAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;;;;gDAIf;AAIK;IAFL,IAAA,kBAAS,EAAC,oCAAuB,CAAC;IAClC,IAAA,YAAG,EAAC,KAAK,CAAC;IAER,mBAAA,IAAA,cAAK,GAAE,CAAA;IACP,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;8CASR;AAIK;IAFL,IAAA,kBAAS,EAAC,oCAAuB,CAAC;IAClC,IAAA,YAAG,GAAE;IAEH,mBAAA,IAAA,aAAI,GAAE,CAAA;IACN,mBAAA,IAAA,YAAG,GAAE,CAAA;IACL,mBAAA,IAAA,YAAG,GAAE,CAAA;;;;0CAkDP;AAIK;IAFL,IAAA,kBAAS,EAAC,yBAAY,CAAC;IACvB,IAAA,YAAG,EAAC,KAAK,CAAC;IAER,mBAAA,IAAA,cAAK,GAAE,CAAA;IACP,mBAAA,IAAA,aAAI,GAAE,CAAA;IACN,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;4CAGR;AAIK;IAFL,IAAA,kBAAS,EAAC,yBAAY,CAAC;IACvB,IAAA,cAAK,EAAC,KAAK,CAAC;IAEV,mBAAA,IAAA,cAAK,GAAE,CAAA;IACP,mBAAA,IAAA,aAAI,GAAE,CAAA;IACN,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;mDAGR;AAIK;IAFL,IAAA,kBAAS,EAAC,yBAAY,CAAC;IACvB,IAAA,eAAM,EAAC,KAAK,CAAC;IAEX,mBAAA,IAAA,cAAK,GAAE,CAAA;IACP,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;4CAGR;AAIK;IAFL,IAAA,kBAAS,EAAC,yBAAY,CAAC;IACvB,IAAA,aAAI,EAAC,aAAa,CAAC;IAEjB,mBAAA,IAAA,YAAG,GAAE,CAAA;IACL,mBAAA,IAAA,YAAG,GAAE,CAAA;IACL,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;sDAsBR;AAIK;IAFL,IAAA,kBAAS,EAAC,oCAAuB,CAAC;IAClC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IAEpB,mBAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,mBAAA,IAAA,YAAG,GAAE,CAAA;IACL,mBAAA,IAAA,YAAG,GAAE,CAAA;IACL,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;wDAqDR;AAIK;IAFL,IAAA,kBAAS,EAAC,yBAAY,CAAC;IACvB,IAAA,eAAM,EAAC,iBAAiB,CAAC;IAEvB,mBAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,mBAAA,IAAA,aAAI,GAAE,CAAA;;;;sDAIR;yBA9OU,cAAc;IAD1B,IAAA,mBAAU,EAAC,EAAE,CAAC;IAIV,mBAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,mBAAA,IAAA,eAAM,EAAC,qBAAY,CAAC,CAAA;6CAFO,qCAAW;GAF9B,cAAc,CAuV1B"}
@@ -0,0 +1,6 @@
1
+ import { IQ2mResult } from './query-to-mongo';
2
+ export interface IHttpQueryLimits {
3
+ maxLimit: number;
4
+ }
5
+ /** HTTP-only boundary; the lower-level parser remains available to trusted callers. */
6
+ export declare function parseHttpQuery(query: Record<string, unknown>, limits: IHttpQueryLimits): IQ2mResult;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseHttpQuery = parseHttpQuery;
4
+ const common_1 = require("@nestjs/common");
5
+ const query_to_mongo_1 = require("./query-to-mongo");
6
+ const crud_query_config_1 = require("../../crud-query.config");
7
+ const operators = new Set([
8
+ '$eq',
9
+ '$ne',
10
+ '$gt',
11
+ '$gte',
12
+ '$lt',
13
+ '$lte',
14
+ '$in',
15
+ '$nin',
16
+ '$exists',
17
+ // Only produced by the `~=` filter, whose value q2m escapes to a literal.
18
+ '$regex',
19
+ '$options',
20
+ ]);
21
+ const reservedKeys = new Set([
22
+ '$search',
23
+ 'fields',
24
+ 'omit',
25
+ 'sort',
26
+ 'limit',
27
+ 'offset',
28
+ ]);
29
+ const MAX_KEY_LENGTH = 128;
30
+ const MAX_VALUE_LENGTH = 1024;
31
+ /** `~=` filters and `$search` scan every document, so their text is shorter. */
32
+ const MAX_TEXT_SEARCH_LENGTH = 256;
33
+ /** A repeated key (the `check` filter) becomes `$in`; this bounds its values. */
34
+ const MAX_VALUES_PER_KEY = 100;
35
+ const MAX_QUERY_LENGTH = 4096;
36
+ function field(name) {
37
+ return (/^[A-Za-z_][\w]*(\.[A-Za-z_][\w]*)*$/.test(name) &&
38
+ !name
39
+ .split('.')
40
+ .some((part) => ['__proto__', 'prototype', 'constructor'].includes(part)));
41
+ }
42
+ function invalid() {
43
+ throw new common_1.BadRequestException('Unsupported or unbounded query');
44
+ }
45
+ function value(input, depth = 0) {
46
+ if (depth > 3 || input instanceof RegExp)
47
+ invalid();
48
+ if (input instanceof Date)
49
+ return;
50
+ if (Array.isArray(input)) {
51
+ if (input.length > MAX_VALUES_PER_KEY)
52
+ invalid();
53
+ input.forEach((item) => value(item, depth + 1));
54
+ }
55
+ else if (input && typeof input === 'object') {
56
+ for (const [key, item] of Object.entries(input)) {
57
+ if (!operators.has(key))
58
+ invalid();
59
+ value(item, depth + 1);
60
+ }
61
+ }
62
+ }
63
+ function scalar(item) {
64
+ return ['string', 'number', 'boolean'].includes(typeof item);
65
+ }
66
+ function integer(text, min, max) {
67
+ const number = Number(text);
68
+ return Number.isSafeInteger(number) && number >= min && number <= max;
69
+ }
70
+ function validateKey(key) {
71
+ if (key.length > MAX_KEY_LENGTH)
72
+ invalid();
73
+ if (key.includes('$') && key !== '$search')
74
+ invalid();
75
+ // `field:op=value` is q2m's raw operator syntax; it is not part of the HTTP API.
76
+ if (key.includes(':'))
77
+ invalid();
78
+ const fieldName = /^!?([^><~!=:]+)/.exec(key)?.[1];
79
+ if (key !== '$search' && (!fieldName || !field(fieldName)))
80
+ invalid();
81
+ }
82
+ function validateValue(key, text) {
83
+ if (text.length > MAX_VALUE_LENGTH)
84
+ invalid();
85
+ // q2m reads `key=:op=value` as a raw operator too.
86
+ if (/^:.*=/.test(text))
87
+ invalid();
88
+ if ((key === '$search' || key.endsWith('~')) &&
89
+ text.length > MAX_TEXT_SEARCH_LENGTH)
90
+ invalid();
91
+ if (key === 'limit' && !integer(text, 1, Number.MAX_SAFE_INTEGER))
92
+ invalid();
93
+ if (key === 'offset' && !integer(text, 0, crud_query_config_1.MAX_QUERY_OFFSET))
94
+ invalid();
95
+ }
96
+ /** HTTP-only boundary; the lower-level parser remains available to trusted callers. */
97
+ function parseHttpQuery(query, limits) {
98
+ const params = new URLSearchParams();
99
+ for (const [key, item] of Object.entries(query)) {
100
+ validateKey(key);
101
+ const items = Array.isArray(item) && !reservedKeys.has(key) ? item : [item];
102
+ if (items.length > MAX_VALUES_PER_KEY || !items.every(scalar))
103
+ invalid();
104
+ for (const entry of items) {
105
+ const text = String(entry);
106
+ validateValue(key, text);
107
+ params.append(key, text);
108
+ }
109
+ }
110
+ if (params.toString().length > MAX_QUERY_LENGTH)
111
+ invalid();
112
+ const result = (0, query_to_mongo_1.q2m)(params.toString(), {
113
+ maxLimit: limits.maxLimit,
114
+ maxOffset: crud_query_config_1.MAX_QUERY_OFFSET,
115
+ });
116
+ for (const [key, item] of Object.entries(result.criteria)) {
117
+ if (key === '$search') {
118
+ if (typeof item !== 'string')
119
+ invalid();
120
+ }
121
+ else {
122
+ if (!field(key))
123
+ invalid();
124
+ value(item);
125
+ }
126
+ }
127
+ for (const fields of [result.options.fields, result.options.sort]) {
128
+ if (fields && Object.keys(fields).some((key) => !field(key)))
129
+ invalid();
130
+ }
131
+ return result;
132
+ }
133
+ //# sourceMappingURL=http-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-query.js","sourceRoot":"","sources":["../../../../../../../../../packages/crud/shell/nestjs/src/lib/controllers/crud/http-query.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ export interface IQ2mOptions {
16
16
  /** Query keys that are not turned into criteria. */
17
17
  ignore?: string | string[];
18
18
  maxLimit?: number;
19
+ /** Paging links whose offset would exceed this are left out. */
20
+ maxOffset?: number;
19
21
  parser?: IQ2mParser;
20
22
  }
21
23
  /** Mongo query options derived from the paging and projection parameters. */
@@ -23,8 +23,12 @@ function fieldsToMongo(fields) {
23
23
  });
24
24
  return hash;
25
25
  }
26
+ // Escape the `~=` text so the regex matches it literally (no ReDoS). A quoted
27
+ // value (`'123'`, how the CRUD UI sends numeric-looking text) is unquoted first.
26
28
  function convertRegex(val) {
27
- return val.toString().replace(/\*/g, '[*]');
29
+ const quoted = val.match(/^(["'])(.*)\1$/);
30
+ const text = quoted ? quoted[2] : val;
31
+ return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
28
32
  }
29
33
  // Convert comma separated list to a mongo projection which specifies fields to omit.
30
34
  // for example f('field2') -> {field2:false}
@@ -157,10 +161,7 @@ function comparisonToMongo(key, value) {
157
161
  else if (op === '<=')
158
162
  result = { $lte: typed };
159
163
  else if (op === '~=')
160
- result = {
161
- $regex: typed ? convertRegex(String(typed)) : '',
162
- $options: 'i',
163
- };
164
+ result = { $regex: convertRegex(parts[3]), $options: 'i' };
164
165
  }
165
166
  return { key, value: result };
166
167
  }
@@ -260,6 +261,7 @@ function resolveOptions(options) {
260
261
  keywords,
261
262
  ignore: ignore.concat(ignoreKeywords),
262
263
  maxLimit: given.maxLimit,
264
+ maxOffset: given.maxOffset ?? Number.MAX_SAFE_INTEGER,
263
265
  parser: given.parser || defaultParser,
264
266
  };
265
267
  }
@@ -285,10 +287,15 @@ function q2m(query = null, options = null) {
285
287
  if (offset + limit < totalCount) {
286
288
  const pages = Math.ceil(totalCount / limit);
287
289
  const lastOffset = (pages - 1) * limit;
288
- parsed[offsetKey] = Math.min(offset + limit, lastOffset);
289
- links['next'] = url + '?' + resolved.parser.stringify(parsed);
290
- parsed[offsetKey] = lastOffset;
291
- links['last'] = url + '?' + resolved.parser.stringify(parsed);
290
+ const nextOffset = Math.min(offset + limit, lastOffset);
291
+ if (nextOffset <= resolved.maxOffset) {
292
+ parsed[offsetKey] = nextOffset;
293
+ links['next'] = url + '?' + resolved.parser.stringify(parsed);
294
+ }
295
+ if (lastOffset <= resolved.maxOffset) {
296
+ parsed[offsetKey] = lastOffset;
297
+ links['last'] = url + '?' + resolved.parser.stringify(parsed);
298
+ }
292
299
  }
293
300
  return links;
294
301
  },
@@ -1 +1 @@
1
- {"version":3,"file":"query-to-mongo.js","sourceRoot":"","sources":["../../../../../../../../../packages/crud/shell/nestjs/src/lib/controllers/crud/query-to-mongo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-to-mongo.js","sourceRoot":"","sources":["../../../../../../../../../packages/crud/shell/nestjs/src/lib/controllers/crud/query-to-mongo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Bounds of the HTTP list endpoint (`GET /`). Pass these in the options of
3
+ * `CrudShellNestjsModule.forRoot()`; they reach `CrudController` through `SharedConfig`.
4
+ */
5
+ export interface ICrudQueryConfig {
6
+ /**
7
+ * Largest page a list request returns, and the page size when the request
8
+ * sends no `limit`. Default `100`.
9
+ */
10
+ maxQueryLimit?: number;
11
+ /**
12
+ * Largest CSV/XLSX export. An export without `limit` that matches more rows
13
+ * is refused with 400 instead of being truncated. Default `10000`.
14
+ */
15
+ maxExportLimit?: number;
16
+ }
17
+ export declare const DEFAULT_MAX_QUERY_LIMIT = 100;
18
+ export declare const DEFAULT_MAX_EXPORT_LIMIT = 10000;
19
+ /** Largest `offset` a list request accepts; paging links never go past it. */
20
+ export declare const MAX_QUERY_OFFSET = 10000;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_QUERY_OFFSET = exports.DEFAULT_MAX_EXPORT_LIMIT = exports.DEFAULT_MAX_QUERY_LIMIT = void 0;
4
+ exports.DEFAULT_MAX_QUERY_LIMIT = 100;
5
+ exports.DEFAULT_MAX_EXPORT_LIMIT = 10000;
6
+ /** Largest `offset` a list request accepts; paging links never go past it. */
7
+ exports.MAX_QUERY_OFFSET = 10000;
8
+ //# sourceMappingURL=crud-query.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-query.config.js","sourceRoot":"","sources":["../../../../../../../packages/crud/shell/nestjs/src/lib/crud-query.config.ts"],"names":[],"mappings":";;;AAiBa,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAC9B,QAAA,wBAAwB,GAAG,KAAK,CAAC;AAC9C,8EAA8E;AACjE,QAAA,gBAAgB,GAAG,KAAK,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { DynamicModule } from '@nestjs/common';
2
2
  import { SharedConfig } from '@smartsoft001/nestjs';
3
+ import { ICrudQueryConfig } from './crud-query.config';
3
4
  export declare class CrudShellNestjsModule {
4
5
  static forRoot<T>(options: SharedConfig & {
5
6
  db: {
@@ -14,7 +15,7 @@ export declare class CrudShellNestjsModule {
14
15
  } & {
15
16
  restApi: boolean;
16
17
  socket: boolean;
17
- }): DynamicModule;
18
+ } & ICrudQueryConfig): DynamicModule;
18
19
  }
19
20
  export declare class CrudShellNestjsCoreModule {
20
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"nestjs.module.js","sourceRoot":"","sources":["../../../../../../../packages/crud/shell/nestjs/src/lib/nestjs.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAuD;AACvD,qCAAwC;AACxC,+CAAkD;AAElD,mFAAiE;AACjE,+CAAkD;AAClD,iDAAkE;AAElE,+CAA4C;AAC5C,yCAAsC;AACtC,yDAAwD;AAGjD,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAChC,MAAM,CAAC,OAAO,CACZ,OAaC;QAED,6EAA6E;QAC7E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,2EAA2E;QAC3E,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;QAEtE,OAAO;YACL,MAAM,EAAE,uBAAqB;YAC7B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAW,CAAC,CAAC,CAAC,EAAE;YAC/C,SAAS,EAAE;gBACT,GAAG,kCAAQ;gBACX,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,yBAAY;aACb;YACD,OAAO,EAAE;gBACP,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;oBACvC,WAAW,EAAE,kBAAkB;oBAC7B,CAAC,CAAC;wBACE,yBAAc,CAAC,QAAQ,CAAC;4BACtB,eAAe,EAAE,KAAK;4BACtB,OAAO,EAAE,KAAK;yBACf,CAAC;wBACF,eAAS,CAAC,QAAQ,CAAC;4BACjB,MAAM,EAAE,WAAW,CAAC,kBAAkB;4BACtC,WAAW,EAAE;gCACX,SAAS,EAAE,WAAW,CAAC,SAAS;6BACjC;yBACF,CAAC;qBACH;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,qBAAY,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC/B,mBAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;aAChC;YACD,OAAO,EAAE,CAAC,GAAG,kCAAQ,EAAE,yBAAY,EAAE,mBAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;CACF,CAAA;AApDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,qBAAqB,CAoDjC;AAGM,IAAM,yBAAyB,iCAA/B,MAAM,yBAAyB;IACpC;;;OAGG;IACH,MAAM,CAAC,OAAO,CACZ,OAWC;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;QAEtE,OAAO;YACL,MAAM,EAAE,2BAAyB;YACjC,SAAS,EAAE,CAAC,GAAG,kCAAQ,EAAE,GAAG,mBAAQ,EAAE,yBAAY,CAAC;YACnD,OAAO,EAAE;gBACP,yBAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACnE,eAAS,CAAC,QAAQ,CAAC;oBACjB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,kBAAkB;oBAC9C,WAAW,EAAE;wBACX,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS;qBACzC;iBACF,CAAC;gBACF,qBAAY,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5B,mBAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;aAChC;YACD,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;CACF,CAAA;AAtCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,yBAAyB,CAsCrC"}
1
+ {"version":3,"file":"nestjs.module.js","sourceRoot":"","sources":["../../../../../../../packages/crud/shell/nestjs/src/lib/nestjs.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAuD;AACvD,qCAAwC;AACxC,+CAAkD;AAElD,mFAAiE;AACjE,+CAAkD;AAClD,iDAAkE;AAElE,+CAA4C;AAE5C,yCAAsC;AACtC,yDAAwD;AAGjD,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAChC,MAAM,CAAC,OAAO,CACZ,OAaoB;QAEpB,6EAA6E;QAC7E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,2EAA2E;QAC3E,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;QAEtE,OAAO;YACL,MAAM,EAAE,uBAAqB;YAC7B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAW,CAAC,CAAC,CAAC,EAAE;YAC/C,SAAS,EAAE;gBACT,GAAG,kCAAQ;gBACX,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,yBAAY;aACb;YACD,OAAO,EAAE;gBACP,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;oBACvC,WAAW,EAAE,kBAAkB;oBAC7B,CAAC,CAAC;wBACE,yBAAc,CAAC,QAAQ,CAAC;4BACtB,eAAe,EAAE,KAAK;4BACtB,OAAO,EAAE,KAAK;yBACf,CAAC;wBACF,eAAS,CAAC,QAAQ,CAAC;4BACjB,MAAM,EAAE,WAAW,CAAC,kBAAkB;4BACtC,WAAW,EAAE;gCACX,SAAS,EAAE,WAAW,CAAC,SAAS;6BACjC;yBACF,CAAC;qBACH;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,qBAAY,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC/B,mBAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;aAChC;YACD,OAAO,EAAE,CAAC,GAAG,kCAAQ,EAAE,yBAAY,EAAE,mBAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;CACF,CAAA;AApDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,qBAAqB,CAoDjC;AAGM,IAAM,yBAAyB,iCAA/B,MAAM,yBAAyB;IACpC;;;OAGG;IACH,MAAM,CAAC,OAAO,CACZ,OAWC;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;QAEtE,OAAO;YACL,MAAM,EAAE,2BAAyB;YACjC,SAAS,EAAE,CAAC,GAAG,kCAAQ,EAAE,GAAG,mBAAQ,EAAE,yBAAY,CAAC;YACnD,OAAO,EAAE;gBACP,yBAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACnE,eAAS,CAAC,QAAQ,CAAC;oBACjB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,kBAAkB;oBAC9C,WAAW,EAAE;wBACX,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS;qBACzC;iBACF,CAAC;gBACF,qBAAY,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5B,mBAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;aAChC;YACD,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;CACF,CAAA;AAtCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,yBAAyB,CAsCrC"}