@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.
- package/dist/output-gateway/controllers/V2MvtController.d.ts +1 -0
- package/dist/output-gateway/controllers/V2MvtController.js +14 -1
- package/dist/output-gateway/controllers/V2MvtController.js.map +1 -1
- package/dist/output-gateway/routers/V2MvtRouter.js +1 -1
- package/dist/output-gateway/routers/V2MvtRouter.js.map +1 -1
- package/dist/output-gateway/services/FilterBuilder.js +18 -7
- package/dist/output-gateway/services/FilterBuilder.js.map +1 -1
- package/dist/output-gateway/services/FilterOperator.d.ts +9 -0
- package/dist/output-gateway/services/FilterOperator.js +14 -0
- package/dist/output-gateway/services/FilterOperator.js.map +1 -0
- package/package.json +1 -1
|
@@ -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
|
|
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":";;;;;;;;;;;;;;;AAAA,sEAAoE;
|
|
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":";;;AAAA,kCAA0C;AAC1C,sEAAoE;AACpE,sFAAmF;AAEnF,+DAAuE;AACvE,6EAA2E;AAC3E,mFAA2E;AAC3E,2CAA2C;AAG3C,MAAM,WAAY,SAAQ,+BAAc;IAIpC;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAE9B,IAAI,CAAC,UAAU,GAAG,iBAAY,CAAC,OAAO,CAAC,2CAAoB,CAAC,eAAe,CAAC,CAAC;QAC7E,IAAI,CAAC,qBAAqB,GAAG,iBAAY,CAAC,OAAO,CAAwB,oBAAc,CAAC,qBAAqB,CAAC,CAAC;QAC/G,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,WAAW,EACX;YACI,IAAA,yBAAK,EAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC3C,IAAA,yBAAK,EAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC3C,IAAA,yBAAK,EAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC3C,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAClD,IAAA,yBAAK,EAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YACrD,IAAA,yBAAK,EAAC,YAAY,CAAC,CAAC,MAAM,EAAE;YAC5B,IAAA,yBAAK,EAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YACzD,IAAA,yBAAK,EAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;YACjC,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;YAClC,IAAA,yBAAK,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC3D,IAAA,yBAAK,EAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC7D,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../src/output-gateway/services/FilterBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|