@schorts/shared-kernel 5.2.1 → 5.2.2
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 +1 -0
- package/dist/cjs/json-api/index.js +3 -1
- package/dist/cjs/json-api/index.js.map +1 -1
- package/dist/cjs/json-api/url-criteria-builder.js +52 -11
- package/dist/cjs/json-api/url-criteria-builder.js.map +1 -1
- package/dist/cjs/json-api/url-criteria-parser.js +82 -0
- package/dist/cjs/json-api/url-criteria-parser.js.map +1 -0
- package/dist/esm/json-api/index.js +3 -1
- package/dist/esm/json-api/index.js.map +1 -1
- package/dist/esm/json-api/url-criteria-builder.js +52 -11
- package/dist/esm/json-api/url-criteria-builder.js.map +1 -1
- package/dist/esm/json-api/url-criteria-parser.js +82 -0
- package/dist/esm/json-api/url-criteria-parser.js.map +1 -0
- package/dist/types/json-api/index.d.ts +1 -0
- package/dist/types/json-api/index.d.ts.map +1 -1
- package/dist/types/json-api/url-criteria-builder.d.ts.map +1 -1
- package/dist/types/json-api/url-criteria-parser.d.ts +9 -0
- package/dist/types/json-api/url-criteria-parser.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -68,6 +68,7 @@ Translation keys are centralized in registries for discoverability and tooling,
|
|
|
68
68
|
### 🔗 JSON:API
|
|
69
69
|
|
|
70
70
|
- **JSONAPIConnector:** Connector for interacting with JSON:API-compliant endpoints.
|
|
71
|
+
- **URLCriteriaParser:** Utility for parsing JSON:API-style query parameters (`filter`, `sort`, `page[limit]`, `page[offset]`) into a type-safe `Criteria` object. Supports operators like `eq`, `ne`, `gt`, `lt`, `in`, `between`, and even geospatial filters (`geo_radius`). This enables seamless conversion from URL query strings into expressive domain queries.
|
|
71
72
|
|
|
72
73
|
### 📬 Mail
|
|
73
74
|
|
|
@@ -14,10 +14,12 @@ 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
|
-
exports.JSONAPIConnector = exports.URLCriteriaBuilder = void 0;
|
|
17
|
+
exports.URLCriteriaParser = exports.JSONAPIConnector = exports.URLCriteriaBuilder = void 0;
|
|
18
18
|
var url_criteria_builder_1 = require("./url-criteria-builder");
|
|
19
19
|
Object.defineProperty(exports, "URLCriteriaBuilder", { enumerable: true, get: function () { return url_criteria_builder_1.URLCriteriaBuilder; } });
|
|
20
20
|
var json_api_connector_1 = require("./json-api-connector");
|
|
21
21
|
Object.defineProperty(exports, "JSONAPIConnector", { enumerable: true, get: function () { return json_api_connector_1.JSONAPIConnector; } });
|
|
22
|
+
var url_criteria_parser_1 = require("./url-criteria-parser");
|
|
23
|
+
Object.defineProperty(exports, "URLCriteriaParser", { enumerable: true, get: function () { return url_criteria_parser_1.URLCriteriaParser; } });
|
|
22
24
|
__exportStar(require("./exceptions"), exports);
|
|
23
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/json-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/json-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA;AAC1B,+CAA6B"}
|
|
@@ -14,19 +14,60 @@ class URLCriteriaBuilder {
|
|
|
14
14
|
build() {
|
|
15
15
|
const builder = new utils_1.URLWithParamsBuilder(new URL(this.base.href));
|
|
16
16
|
if (this.include?.length) {
|
|
17
|
-
builder.with({ include: this.include });
|
|
17
|
+
builder.with({ include: this.include.join(",") });
|
|
18
18
|
}
|
|
19
19
|
if (this.criteria) {
|
|
20
|
-
|
|
21
|
-
const encodedField = field.replace(/\./g, ".");
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
this.criteria.filters.forEach(({ field, operator, value }) => {
|
|
21
|
+
const encodedField = field.replace(/\./g, ".");
|
|
22
|
+
switch (operator) {
|
|
23
|
+
case "EQUAL":
|
|
24
|
+
builder.with({ [`filter[${encodedField}]`]: value });
|
|
25
|
+
break;
|
|
26
|
+
case "NOT_EQUAL":
|
|
27
|
+
builder.with({ [`filter[${encodedField}][ne]`]: value });
|
|
28
|
+
break;
|
|
29
|
+
case "GREATER_THAN":
|
|
30
|
+
builder.with({ [`filter[${encodedField}][gt]`]: value });
|
|
31
|
+
break;
|
|
32
|
+
case "LESS_THAN":
|
|
33
|
+
builder.with({ [`filter[${encodedField}][lt]`]: value });
|
|
34
|
+
break;
|
|
35
|
+
case "GREATER_THAN_OR_EQUAL":
|
|
36
|
+
builder.with({ [`filter[${encodedField}][gte]`]: value });
|
|
37
|
+
break;
|
|
38
|
+
case "LESS_THAN_OR_EQUAL":
|
|
39
|
+
builder.with({ [`filter[${encodedField}][lte]`]: value });
|
|
40
|
+
break;
|
|
41
|
+
case "IN":
|
|
42
|
+
if (Array.isArray(value)) {
|
|
43
|
+
builder.with({ [`filter[${encodedField}][in]`]: value.join(",") });
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
case "NOT_IN":
|
|
47
|
+
if (Array.isArray(value)) {
|
|
48
|
+
builder.with({ [`filter[${encodedField}][nin]`]: value.join(",") });
|
|
49
|
+
}
|
|
50
|
+
break;
|
|
51
|
+
case "LIKE":
|
|
52
|
+
builder.with({ [`filter[${encodedField}][like]`]: value });
|
|
53
|
+
break;
|
|
54
|
+
case "BETWEEN":
|
|
55
|
+
if (Array.isArray(value) && value.length === 2) {
|
|
56
|
+
builder.with({
|
|
57
|
+
[`filter[${encodedField}][between]`]: `${value[0]},${value[1]}`,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
case "GEO_RADIUS":
|
|
62
|
+
if (value && typeof value === "object") {
|
|
63
|
+
const { lat, lng, radius } = value;
|
|
64
|
+
builder.with({
|
|
65
|
+
[`filter[${encodedField}][geo_radius]`]: `${lat},${lng},${radius}`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
default:
|
|
70
|
+
throw new Error(`Unsupported operator: ${operator}`);
|
|
30
71
|
}
|
|
31
72
|
});
|
|
32
73
|
if (this.criteria.orders.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-criteria-builder.js","sourceRoot":"","sources":["../../../src/json-api/url-criteria-builder.ts"],"names":[],"mappings":";;;AAAA,oCAAgD;AAGhD,MAAa,kBAAkB;IAEV;IACA;IACA;IAHnB,YACmB,IAAS,EACT,QAAmB,EACnB,OAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAK;QACT,aAAQ,GAAR,QAAQ,CAAW;QACnB,YAAO,GAAP,OAAO,CAAW;IAClC,CAAC;IAEJ,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,4BAAoB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"url-criteria-builder.js","sourceRoot":"","sources":["../../../src/json-api/url-criteria-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.URLCriteriaParser = void 0;
|
|
4
|
+
const criteria_1 = require("../criteria");
|
|
5
|
+
class URLCriteriaParser {
|
|
6
|
+
url;
|
|
7
|
+
constructor(url) {
|
|
8
|
+
this.url = url;
|
|
9
|
+
}
|
|
10
|
+
parse() {
|
|
11
|
+
const criteria = new criteria_1.Criteria();
|
|
12
|
+
const params = this.url.searchParams;
|
|
13
|
+
for (const [key, value] of params.entries()) {
|
|
14
|
+
if (!key.startsWith("filter["))
|
|
15
|
+
continue;
|
|
16
|
+
const match = key.match(/^filter\[([^\]]+)\](?:\[([^\]]+)\])?$/);
|
|
17
|
+
if (!match)
|
|
18
|
+
continue;
|
|
19
|
+
const [, field, op] = match;
|
|
20
|
+
const operator = this.mapOperator(op);
|
|
21
|
+
const parsedValue = this.parseValue(operator, value);
|
|
22
|
+
criteria.where(field, operator, parsedValue);
|
|
23
|
+
}
|
|
24
|
+
const sortParam = params.get("sort");
|
|
25
|
+
if (sortParam) {
|
|
26
|
+
sortParam.split(",").forEach((part) => {
|
|
27
|
+
const direction = part.startsWith("-") ? "DESC" : "ASC";
|
|
28
|
+
const field = part.replace(/^-/, "");
|
|
29
|
+
criteria.orderBy(field, direction);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const limit = params.get("page[limit]");
|
|
33
|
+
if (limit)
|
|
34
|
+
criteria.limitResults(Number(limit));
|
|
35
|
+
const offset = params.get("page[offset]");
|
|
36
|
+
if (offset)
|
|
37
|
+
criteria.offsetResults(Number(offset));
|
|
38
|
+
return criteria;
|
|
39
|
+
}
|
|
40
|
+
mapOperator(op) {
|
|
41
|
+
switch (op) {
|
|
42
|
+
case undefined: return "EQUAL";
|
|
43
|
+
case "ne": return "NOT_EQUAL";
|
|
44
|
+
case "gt": return "GREATER_THAN";
|
|
45
|
+
case "lt": return "LESS_THAN";
|
|
46
|
+
case "gte": return "GREATER_THAN_OR_EQUAL";
|
|
47
|
+
case "lte": return "LESS_THAN_OR_EQUAL";
|
|
48
|
+
case "in": return "IN";
|
|
49
|
+
case "nin": return "NOT_IN";
|
|
50
|
+
case "like": return "LIKE";
|
|
51
|
+
case "between": return "BETWEEN";
|
|
52
|
+
case "geo_radius": return "GEO_RADIUS";
|
|
53
|
+
default: throw new Error(`Unknown operator: ${op}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
parseValue(operator, raw) {
|
|
57
|
+
const tryParsePrimitive = (val) => {
|
|
58
|
+
const maybeDate = new Date(val);
|
|
59
|
+
if (!isNaN(maybeDate.getTime()))
|
|
60
|
+
return maybeDate;
|
|
61
|
+
if (!isNaN(Number(val)) && val.trim() !== "")
|
|
62
|
+
return Number(val);
|
|
63
|
+
return val;
|
|
64
|
+
};
|
|
65
|
+
switch (operator) {
|
|
66
|
+
case "IN":
|
|
67
|
+
case "NOT_IN":
|
|
68
|
+
case "BETWEEN":
|
|
69
|
+
return raw.split(",").map((v) => tryParsePrimitive(v.trim()));
|
|
70
|
+
case "GEO_RADIUS": {
|
|
71
|
+
const [latStr, lngStr, radiusStr] = raw.split(",");
|
|
72
|
+
const center = [parseFloat(latStr), parseFloat(lngStr)];
|
|
73
|
+
const radiusInM = parseFloat(radiusStr);
|
|
74
|
+
return { center, radiusInM };
|
|
75
|
+
}
|
|
76
|
+
default:
|
|
77
|
+
return tryParsePrimitive(raw);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.URLCriteriaParser = URLCriteriaParser;
|
|
82
|
+
//# sourceMappingURL=url-criteria-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-criteria-parser.js","sourceRoot":"","sources":["../../../src/json-api/url-criteria-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,12 @@ 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
|
-
exports.JSONAPIConnector = exports.URLCriteriaBuilder = void 0;
|
|
17
|
+
exports.URLCriteriaParser = exports.JSONAPIConnector = exports.URLCriteriaBuilder = void 0;
|
|
18
18
|
var url_criteria_builder_1 = require("./url-criteria-builder");
|
|
19
19
|
Object.defineProperty(exports, "URLCriteriaBuilder", { enumerable: true, get: function () { return url_criteria_builder_1.URLCriteriaBuilder; } });
|
|
20
20
|
var json_api_connector_1 = require("./json-api-connector");
|
|
21
21
|
Object.defineProperty(exports, "JSONAPIConnector", { enumerable: true, get: function () { return json_api_connector_1.JSONAPIConnector; } });
|
|
22
|
+
var url_criteria_parser_1 = require("./url-criteria-parser");
|
|
23
|
+
Object.defineProperty(exports, "URLCriteriaParser", { enumerable: true, get: function () { return url_criteria_parser_1.URLCriteriaParser; } });
|
|
22
24
|
__exportStar(require("./exceptions"), exports);
|
|
23
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/json-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/json-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AACzB,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA;AAC1B,+CAA6B"}
|
|
@@ -14,19 +14,60 @@ class URLCriteriaBuilder {
|
|
|
14
14
|
build() {
|
|
15
15
|
const builder = new utils_1.URLWithParamsBuilder(new URL(this.base.href));
|
|
16
16
|
if (this.include?.length) {
|
|
17
|
-
builder.with({ include: this.include });
|
|
17
|
+
builder.with({ include: this.include.join(",") });
|
|
18
18
|
}
|
|
19
19
|
if (this.criteria) {
|
|
20
|
-
|
|
21
|
-
const encodedField = field.replace(/\./g, ".");
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
this.criteria.filters.forEach(({ field, operator, value }) => {
|
|
21
|
+
const encodedField = field.replace(/\./g, ".");
|
|
22
|
+
switch (operator) {
|
|
23
|
+
case "EQUAL":
|
|
24
|
+
builder.with({ [`filter[${encodedField}]`]: value });
|
|
25
|
+
break;
|
|
26
|
+
case "NOT_EQUAL":
|
|
27
|
+
builder.with({ [`filter[${encodedField}][ne]`]: value });
|
|
28
|
+
break;
|
|
29
|
+
case "GREATER_THAN":
|
|
30
|
+
builder.with({ [`filter[${encodedField}][gt]`]: value });
|
|
31
|
+
break;
|
|
32
|
+
case "LESS_THAN":
|
|
33
|
+
builder.with({ [`filter[${encodedField}][lt]`]: value });
|
|
34
|
+
break;
|
|
35
|
+
case "GREATER_THAN_OR_EQUAL":
|
|
36
|
+
builder.with({ [`filter[${encodedField}][gte]`]: value });
|
|
37
|
+
break;
|
|
38
|
+
case "LESS_THAN_OR_EQUAL":
|
|
39
|
+
builder.with({ [`filter[${encodedField}][lte]`]: value });
|
|
40
|
+
break;
|
|
41
|
+
case "IN":
|
|
42
|
+
if (Array.isArray(value)) {
|
|
43
|
+
builder.with({ [`filter[${encodedField}][in]`]: value.join(",") });
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
case "NOT_IN":
|
|
47
|
+
if (Array.isArray(value)) {
|
|
48
|
+
builder.with({ [`filter[${encodedField}][nin]`]: value.join(",") });
|
|
49
|
+
}
|
|
50
|
+
break;
|
|
51
|
+
case "LIKE":
|
|
52
|
+
builder.with({ [`filter[${encodedField}][like]`]: value });
|
|
53
|
+
break;
|
|
54
|
+
case "BETWEEN":
|
|
55
|
+
if (Array.isArray(value) && value.length === 2) {
|
|
56
|
+
builder.with({
|
|
57
|
+
[`filter[${encodedField}][between]`]: `${value[0]},${value[1]}`,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
case "GEO_RADIUS":
|
|
62
|
+
if (value && typeof value === "object") {
|
|
63
|
+
const { lat, lng, radius } = value;
|
|
64
|
+
builder.with({
|
|
65
|
+
[`filter[${encodedField}][geo_radius]`]: `${lat},${lng},${radius}`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
default:
|
|
70
|
+
throw new Error(`Unsupported operator: ${operator}`);
|
|
30
71
|
}
|
|
31
72
|
});
|
|
32
73
|
if (this.criteria.orders.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-criteria-builder.js","sourceRoot":"","sources":["../../../src/json-api/url-criteria-builder.ts"],"names":[],"mappings":";;;AAAA,oCAAgD;AAGhD,MAAa,kBAAkB;IAEV;IACA;IACA;IAHnB,YACmB,IAAS,EACT,QAAmB,EACnB,OAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAK;QACT,aAAQ,GAAR,QAAQ,CAAW;QACnB,YAAO,GAAP,OAAO,CAAW;IAClC,CAAC;IAEJ,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,4BAAoB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"url-criteria-builder.js","sourceRoot":"","sources":["../../../src/json-api/url-criteria-builder.ts"],"names":[],"mappings":";;;AAAA,oCAAgD;AAGhD,MAAa,kBAAkB;IAEV;IACA;IACA;IAHnB,YACmB,IAAS,EACT,QAAmB,EACnB,OAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAK;QACT,aAAQ,GAAR,QAAQ,CAAW;QACnB,YAAO,GAAP,OAAO,CAAW;IAClC,CAAC;IAEJ,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,4BAAoB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAE/C,QAAQ,QAAQ,EAAE,CAAC;oBACjB,KAAK,OAAO;wBACV,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBACrD,MAAM;oBAER,KAAK,WAAW;wBACd,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBACzD,MAAM;oBAER,KAAK,cAAc;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBACzD,MAAM;oBAER,KAAK,WAAW;wBACd,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBACzD,MAAM;oBAER,KAAK,uBAAuB;wBAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC1D,MAAM;oBAER,KAAK,oBAAoB;wBACvB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC1D,MAAM;oBAER,KAAK,IAAI;wBACP,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACrE,CAAC;wBACD,MAAM;oBAER,KAAK,QAAQ;wBACX,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,QAAQ,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACtE,CAAC;wBACD,MAAM;oBAER,KAAK,MAAM;wBACT,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,YAAY,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC3D,MAAM;oBAER,KAAK,SAAS;wBACZ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC/C,OAAO,CAAC,IAAI,CAAC;gCACX,CAAC,UAAU,YAAY,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;6BAChE,CAAC,CAAC;wBACL,CAAC;wBACD,MAAM;oBAER,KAAK,YAAY;wBACf,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BACvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;4BACnC,OAAO,CAAC,IAAI,CAAC;gCACX,CAAC,UAAU,YAAY,eAAe,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,MAAM,EAAE;6BACnE,CAAC,CAAC;wBACL,CAAC;wBACD,MAAM;oBAER;wBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAwB,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;qBACnC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBAC3E,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAnGD,gDAmGC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.URLCriteriaParser = void 0;
|
|
4
|
+
const criteria_1 = require("../criteria");
|
|
5
|
+
class URLCriteriaParser {
|
|
6
|
+
url;
|
|
7
|
+
constructor(url) {
|
|
8
|
+
this.url = url;
|
|
9
|
+
}
|
|
10
|
+
parse() {
|
|
11
|
+
const criteria = new criteria_1.Criteria();
|
|
12
|
+
const params = this.url.searchParams;
|
|
13
|
+
for (const [key, value] of params.entries()) {
|
|
14
|
+
if (!key.startsWith("filter["))
|
|
15
|
+
continue;
|
|
16
|
+
const match = key.match(/^filter\[([^\]]+)\](?:\[([^\]]+)\])?$/);
|
|
17
|
+
if (!match)
|
|
18
|
+
continue;
|
|
19
|
+
const [, field, op] = match;
|
|
20
|
+
const operator = this.mapOperator(op);
|
|
21
|
+
const parsedValue = this.parseValue(operator, value);
|
|
22
|
+
criteria.where(field, operator, parsedValue);
|
|
23
|
+
}
|
|
24
|
+
const sortParam = params.get("sort");
|
|
25
|
+
if (sortParam) {
|
|
26
|
+
sortParam.split(",").forEach((part) => {
|
|
27
|
+
const direction = part.startsWith("-") ? "DESC" : "ASC";
|
|
28
|
+
const field = part.replace(/^-/, "");
|
|
29
|
+
criteria.orderBy(field, direction);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const limit = params.get("page[limit]");
|
|
33
|
+
if (limit)
|
|
34
|
+
criteria.limitResults(Number(limit));
|
|
35
|
+
const offset = params.get("page[offset]");
|
|
36
|
+
if (offset)
|
|
37
|
+
criteria.offsetResults(Number(offset));
|
|
38
|
+
return criteria;
|
|
39
|
+
}
|
|
40
|
+
mapOperator(op) {
|
|
41
|
+
switch (op) {
|
|
42
|
+
case undefined: return "EQUAL";
|
|
43
|
+
case "ne": return "NOT_EQUAL";
|
|
44
|
+
case "gt": return "GREATER_THAN";
|
|
45
|
+
case "lt": return "LESS_THAN";
|
|
46
|
+
case "gte": return "GREATER_THAN_OR_EQUAL";
|
|
47
|
+
case "lte": return "LESS_THAN_OR_EQUAL";
|
|
48
|
+
case "in": return "IN";
|
|
49
|
+
case "nin": return "NOT_IN";
|
|
50
|
+
case "like": return "LIKE";
|
|
51
|
+
case "between": return "BETWEEN";
|
|
52
|
+
case "geo_radius": return "GEO_RADIUS";
|
|
53
|
+
default: throw new Error(`Unknown operator: ${op}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
parseValue(operator, raw) {
|
|
57
|
+
const tryParsePrimitive = (val) => {
|
|
58
|
+
const maybeDate = new Date(val);
|
|
59
|
+
if (!isNaN(maybeDate.getTime()))
|
|
60
|
+
return maybeDate;
|
|
61
|
+
if (!isNaN(Number(val)) && val.trim() !== "")
|
|
62
|
+
return Number(val);
|
|
63
|
+
return val;
|
|
64
|
+
};
|
|
65
|
+
switch (operator) {
|
|
66
|
+
case "IN":
|
|
67
|
+
case "NOT_IN":
|
|
68
|
+
case "BETWEEN":
|
|
69
|
+
return raw.split(",").map((v) => tryParsePrimitive(v.trim()));
|
|
70
|
+
case "GEO_RADIUS": {
|
|
71
|
+
const [latStr, lngStr, radiusStr] = raw.split(",");
|
|
72
|
+
const center = [parseFloat(latStr), parseFloat(lngStr)];
|
|
73
|
+
const radiusInM = parseFloat(radiusStr);
|
|
74
|
+
return { center, radiusInM };
|
|
75
|
+
}
|
|
76
|
+
default:
|
|
77
|
+
return tryParsePrimitive(raw);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.URLCriteriaParser = URLCriteriaParser;
|
|
82
|
+
//# sourceMappingURL=url-criteria-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-criteria-parser.js","sourceRoot":"","sources":["../../../src/json-api/url-criteria-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,6 @@ export type { JSONAPISingle } from "./json-api-single";
|
|
|
2
2
|
export type { JSONAPIList } from "./json-api-list";
|
|
3
3
|
export { URLCriteriaBuilder } from "./url-criteria-builder";
|
|
4
4
|
export { JSONAPIConnector } from "./json-api-connector";
|
|
5
|
+
export { URLCriteriaParser } from "./url-criteria-parser";
|
|
5
6
|
export * from "./exceptions";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/json-api/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/json-api/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,cAAc,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-criteria-builder.d.ts","sourceRoot":"","sources":["../../../src/json-api/url-criteria-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFR,IAAI,EAAE,GAAG,EACT,QAAQ,CAAC,EAAE,QAAQ,YAAA,EACnB,OAAO,CAAC,EAAE,MAAM,EAAE,YAAA;IAGrC,KAAK,IAAI,GAAG;
|
|
1
|
+
{"version":3,"file":"url-criteria-builder.d.ts","sourceRoot":"","sources":["../../../src/json-api/url-criteria-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFR,IAAI,EAAE,GAAG,EACT,QAAQ,CAAC,EAAE,QAAQ,YAAA,EACnB,OAAO,CAAC,EAAE,MAAM,EAAE,YAAA;IAGrC,KAAK,IAAI,GAAG;CA4Fb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-criteria-parser.d.ts","sourceRoot":"","sources":["../../../src/json-api/url-criteria-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,GAAG;IAErC,KAAK,IAAI,QAAQ;IAuCjB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,UAAU;CA4BnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@schorts/shared-kernel",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.2",
|
|
4
4
|
"description": "A modular, type-safe foundation for building expressive, maintainable applications. This package provides core abstractions for domain modeling, HTTP integration, authentication, state management, and more — designed to be framework-agnostic and highly extensible.",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|