@golemio/mvt-maps 1.0.1-dev.1952026866 → 1.0.1-dev.1954051707

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.
@@ -9,4 +9,5 @@ export declare class V2MvtController {
9
9
  validate: (req: Request, res: Response, next: NextFunction) => Promise<void>;
10
10
  private parseParams;
11
11
  private parseFilterParams;
12
+ private validateFilterParams;
12
13
  }
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.V2MvtController = void 0;
16
16
  const ModuleContainerToken_1 = require("../ioc/ModuleContainerToken");
17
+ const FilterOperator_1 = require("../services/FilterOperator");
17
18
  const MvtClusterService_1 = require("../services/MvtClusterService");
18
19
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
19
20
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
@@ -26,6 +27,9 @@ let V2MvtController = exports.V2MvtController = class V2MvtController {
26
27
  try {
27
28
  const params = this.parseParams(req);
28
29
  const filterParams = req.query.filter ? this.parseFilterParams(req.query.filter) : undefined;
30
+ if (filterParams) {
31
+ this.validateFilterParams(filterParams);
32
+ }
29
33
  const result = await this.service.getTile(params.table, params.geometry, params.x, params.y, params.z, params.maxZoom, params.attributes, params.radius, params.clusterPoint, params.colorAttribute, filterParams);
30
34
  res.setHeader("Content-Type", "application/vnd.mapbox-vector-tile");
31
35
  res.status(200).send(result);
@@ -69,7 +73,7 @@ let V2MvtController = exports.V2MvtController = class V2MvtController {
69
73
  parseFilterParams(queryFilter) {
70
74
  try {
71
75
  const filter = JSON.parse(queryFilter);
72
- // Syntax: object structure in filter.<field_name>.<operator>=<value>
76
+ // Syntax: object structure in filter <field_name>.<operator>=<value>
73
77
  const filters = [];
74
78
  if (filter && typeof filter === "object") {
75
79
  const filterObj = filter;
@@ -89,6 +93,15 @@ let V2MvtController = exports.V2MvtController = class V2MvtController {
89
93
  throw new golemio_errors_1.GeneralError("Filter parameters error", this.constructor.name, err, 500);
90
94
  }
91
95
  }
96
+ validateFilterParams(filterParams) {
97
+ const validOperators = Object.values(FilterOperator_1.FilterOperator);
98
+ for (const filterParam of filterParams) {
99
+ if (!validOperators.includes(filterParam.operator)) {
100
+ throw new golemio_errors_1.GeneralError(`Invalid filter operator: ${filterParam.operator}`, this.constructor.name, filterParam.operator, 400);
101
+ }
102
+ }
103
+ return filterParams;
104
+ }
92
105
  };
93
106
  exports.V2MvtController = V2MvtController = __decorate([
94
107
  (0, tsyringe_1.injectable)(),
@@ -1 +1 @@
1
- {"version":3,"file":"V2MvtController.js","sourceRoot":"","sources":["../../../src/output-gateway/controllers/V2MvtController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"V2MvtController.js","sourceRoot":"","sources":["../../../src/output-gateway/controllers/V2MvtController.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ class V2MvtRouter extends AbstractRouter_1.AbstractRouter {
28
28
  (0, express_validator_1.query)("radius").optional().isInt(),
29
29
  (0, express_validator_1.query)("clusterPoint").optional().isString().not().isArray(),
30
30
  (0, express_validator_1.query)("colorAttribute").optional().isString().not().isArray(),
31
- (0, express_validator_1.query)("filter").optional().isString(),
31
+ (0, express_validator_1.query)("filter").optional().isString().isJSON(),
32
32
  ], Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(5 * 60, 60), this.controller.getAll);
33
33
  this.router.get("/validation", [
34
34
  (0, express_validator_1.query)("table").exists().isString().not().isArray(),
@@ -1 +1 @@
1
- {"version":3,"file":"V2MvtRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/routers/V2MvtRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"V2MvtRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/routers/V2MvtRouter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FilterBuilder = void 0;
4
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
5
+ const FilterOperator_1 = require("./FilterOperator");
4
6
  class FilterBuilder {
5
7
  static prepareFilterQuery(filterParams) {
6
8
  let bindingIndex = 1;
@@ -8,6 +10,10 @@ class FilterBuilder {
8
10
  const filterBindings = [];
9
11
  for (const filterParam of filterParams) {
10
12
  const { field, operator, value } = filterParam;
13
+ // Custom validation: field must be lowercase letters and underscores only
14
+ if (!/^([a-z_]+)$/.test(field)) {
15
+ throw new golemio_errors_1.ValidationError(`Invalid field name: ${field}. Only lowercase letters and underscores are allowed.`, this.constructor.name, field, 400);
16
+ }
11
17
  const parsedValue = this.parseValue(operator, value);
12
18
  if (Array.isArray(parsedValue)) {
13
19
  const filterQuery = this.operatorBuilders[operator](field, bindingIndex, parsedValue.length);
@@ -15,6 +21,10 @@ class FilterBuilder {
15
21
  filterBindings.push(...parsedValue);
16
22
  bindingIndex += parsedValue.length;
17
23
  }
24
+ else if (parsedValue === null || parsedValue === undefined) {
25
+ const filterQuery = this.operatorBuilders[operator + "NULL"](field, bindingIndex);
26
+ filterQueries.push(filterQuery);
27
+ }
18
28
  else {
19
29
  const filterQuery = this.operatorBuilders[operator](field, bindingIndex);
20
30
  filterQueries.push(filterQuery);
@@ -39,13 +49,14 @@ class FilterBuilder {
39
49
  }
40
50
  exports.FilterBuilder = FilterBuilder;
41
51
  FilterBuilder.operatorBuilders = {
42
- eq: (field, bindingIndex) => `${field} = \$${bindingIndex}`,
43
- ne: (field, bindingIndex) => `${field} != \$${bindingIndex}`,
44
- gt: (field, bindingIndex) => `${field} > \$${bindingIndex}`,
45
- gte: (field, bindingIndex) => `${field} >= \$${bindingIndex}`,
46
- lt: (field, bindingIndex) => `${field} < \$${bindingIndex}`,
47
- lte: (field, bindingIndex) => `${field} <= \$${bindingIndex}`,
48
- in: (field, bindingIndex, count) => {
52
+ [FilterOperator_1.FilterOperator.EQ]: (field, bindingIndex) => `${field} = \$${bindingIndex}`,
53
+ [FilterOperator_1.FilterOperator.EQ + "NULL"]: (field, bindingIndex) => `${field} is null`,
54
+ [FilterOperator_1.FilterOperator.NE]: (field, bindingIndex) => `${field} != \$${bindingIndex}`,
55
+ [FilterOperator_1.FilterOperator.GT]: (field, bindingIndex) => `${field} > \$${bindingIndex}`,
56
+ [FilterOperator_1.FilterOperator.GTE]: (field, bindingIndex) => `${field} >= \$${bindingIndex}`,
57
+ [FilterOperator_1.FilterOperator.LT]: (field, bindingIndex) => `${field} < \$${bindingIndex}`,
58
+ [FilterOperator_1.FilterOperator.LTE]: (field, bindingIndex) => `${field} <= \$${bindingIndex}`,
59
+ [FilterOperator_1.FilterOperator.IN]: (field, bindingIndex, count) => {
49
60
  if (count) {
50
61
  return `${field} IN (${Array.from({ length: count }, (_, i) => `\$${bindingIndex + i}`).join(",")})`;
51
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../src/output-gateway/services/FilterBuilder.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAkBf,MAAM,CAAC,kBAAkB,CAAC,YAA4B;QACzD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,cAAc,GAAU,EAAE,CAAC;QAEjC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAErD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7F,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChC,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBACpC,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC;aACtC;iBAAM;gBACH,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBACzE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjC,YAAY,EAAE,CAAC;aAClB;SACJ;QAED,OAAO;YACH,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,cAAc;SAC3B,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,QAAgB,EAAE,KAAa;QACrD,IAAI,QAAQ,KAAK,IAAI,EAAE;YACnB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC3B;aAAM,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC3F,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;SACxB;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;;AAtDL,sCAuDC;AAtD2B,8BAAgB,GAAoF;IACxH,EAAE,EAAE,CAAC,KAAa,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,YAAY,EAAE;IAC3E,EAAE,EAAE,CAAC,KAAa,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,YAAY,EAAE;IAC5E,EAAE,EAAE,CAAC,KAAa,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,YAAY,EAAE;IAC3E,GAAG,EAAE,CAAC,KAAa,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,YAAY,EAAE;IAC7E,EAAE,EAAE,CAAC,KAAa,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,YAAY,EAAE;IAC3E,GAAG,EAAE,CAAC,KAAa,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,YAAY,EAAE;IAC7E,EAAE,EAAE,CAAC,KAAa,EAAE,YAAoB,EAAE,KAAc,EAAE,EAAE;QACxD,IAAI,KAAK,EAAE;YACP,OAAO,GAAG,KAAK,QAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;SACxG;aAAM;YACH,OAAO,GAAG,KAAK,UAAU,YAAY,GAAG,CAAC;SAC5C;IACL,CAAC;IACD,KAAK;CACR,CAAC"}
1
+ {"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../src/output-gateway/services/FilterBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare enum FilterOperator {
2
+ EQ = "eq",
3
+ NE = "ne",
4
+ GT = "gt",
5
+ GTE = "gte",
6
+ LT = "lt",
7
+ LTE = "lte",
8
+ IN = "in"
9
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FilterOperator = void 0;
4
+ var FilterOperator;
5
+ (function (FilterOperator) {
6
+ FilterOperator["EQ"] = "eq";
7
+ FilterOperator["NE"] = "ne";
8
+ FilterOperator["GT"] = "gt";
9
+ FilterOperator["GTE"] = "gte";
10
+ FilterOperator["LT"] = "lt";
11
+ FilterOperator["LTE"] = "lte";
12
+ FilterOperator["IN"] = "in";
13
+ })(FilterOperator || (exports.FilterOperator = FilterOperator = {}));
14
+ //# sourceMappingURL=FilterOperator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterOperator.js","sourceRoot":"","sources":["../../../src/output-gateway/services/FilterOperator.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAQX;AARD,WAAY,cAAc;IACtB,2BAAS,CAAA;IACT,2BAAS,CAAA;IACT,2BAAS,CAAA;IACT,6BAAW,CAAA;IACX,2BAAS,CAAA;IACT,6BAAW,CAAA;IACX,2BAAS,CAAA;AACb,CAAC,EARW,cAAc,8BAAd,cAAc,QAQzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/mvt-maps",
3
- "version": "1.0.1-dev.1952026866",
3
+ "version": "1.0.1-dev.1954051707",
4
4
  "description": "Golemio MVT Maps Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",